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

http://helpdev.com.br/zarelli

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>