O FAT JAR (JAR Gordo) é um tipo de distribuição de aplicações Java onde um único JAR contém todas as dependencias para a aplicação ser executada, necessitando somente de uma máquina virtual Java, uma JVM.
Para qualquer aplicação Java baseada em maven, criar um FAT JAR poderia ser resolvido usando o plugin Maven Shade. No entanto, criar FAT Jars com JavaFX pode ser um desafio, pois JavaFX usa módulos.
Felizmente esse assunto foi intensamente discutido na internet e uma boa explicação e olução foi proposta pelo Jose Pereda nessa resposta no StackOverflow.
Nesse post eu quero brevemente compartilhar os passos para fazer um FAT JAR e postar um exemplo do meu github para que outros possam criar seus próprios JARs baseados nesses exemplo.
Como criar um JAR de uma aplicação JavaFX?
1- Crie uma classe com o método main para rodar sua aplicação. Essa classe precisa ter o método main e chamar a sua real aplicação usando o método main dela;
2- Adicione o plugin shade para o seu projeto. Para quem usar o Gradle notem que o próprio José Pereda postou uma resposta sobre isso no Stack Overflow;
3- Na sua configuração do plugin shade certifique-se que você configurou a classe que criou no passo 1.
Isso é basicamente tudo que você precisa. Se não estiver claro, cheque meu exemplo no github. Os três arquivos, App.java, Main.java e pom.xml podem ser vistos abaixo.