Gradle – Gerar uma distribuição com suas dependências / Gerar um FatJar / Configurar o JavaExec / Configurar Manifest

gradle

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
    }
}

Help DEV – Analista desenvolvedor Java / Android
https://helpdev.com.br/zarelli

Gradle – Gerar uma distribuição com suas dependências / Gerar um FatJar / Configurar o JavaExec / Configurar Manifest

Um pensamento em “Gradle – Gerar uma distribuição com suas dependências / Gerar um FatJar / Configurar o JavaExec / Configurar Manifest

  1. 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 ?

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Rolar para o topo