Segue um script de configuração para compilar projetos java e gerar uma distribuição com todas dependências, com opcional de fatJar.
– Configurar o Manifest
– Configurar a execução pela IDE através do type: JavaExec
– Gerar uma distribuição com as dependências dentro da pasta libs/
– Gerar uma distribuição fatJar
ARQUIVO BUILD.GRADLE:
apply plugin: 'java'//Plugin java //versão do sistema: version = '1.0' //MainClass: String mainClass = 'br.com.helpdev.servidor.Main' //Arquivo de configuração properties do servidor. (se necessário) File fileProperties = new File('../server.properties'); //Configuração padrão do manifest. def myManifest = manifest { attributes 'Implementation-Title': 'Servidor de exemplo', 'Implementation-Version': version, 'Main-Class': mainClass } /** * Configuração de dependências. */ dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile('mysql:mysql-connector-java:5.1.6') compile project(':java_lib_objetos')//biblioteca do projeto } /** * Task responsavel pela execução do MainClass diretamente do projeto. */ task execute(type: JavaExec) { main = mainClass classpath = sourceSets.main.runtimeClasspath } /** * Task responsavel em gerar o jar; */ jar { manifest { manifest = myManifest manifest.attributes "Class-Path": configurations.compile.collect { 'libs/' + it.getName() }.join(' ') } } /** * Task responsavel pela geração do fatJar (todas dependencais em um unico jar) */ task fatJar(type: Jar, group: "build") { manifest = myManifest baseName = project.name + '-all' from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } with jar } /** * Task responsavel em fechar a versão do fatJar e compacta-la. */ task makeDistFatJar(type: Zip, dependsOn: [clean, fatJar], group: "dist") { from "$buildDir/libs" from fileProperties } /** * Task responsavel em fechar a versão e compacta-la. */ task makeDist(type: Zip, dependsOn: [clean, jar], group: "dist") { from jar.archivePath from fileProperties into('libs') { from configurations.runtime } }
Gradle – Gerar uma distribuição com suas dependências / Gerar um FatJar / Configurar o JavaExec / Configurar Manifest
Tenho dois projetos Gradle em Java, um possui depenência do outro, consegui colocar a dependência de um para o outro, consigo buildar sem problemas, mas quando gero o fatjar do projeto principal ele não trás o projeto dependente junto, é possível trazer os dois em apenas um jar ?