Gradle - Создать Jar-файл с зависимостями

Gradle - создать файл Jar с зависимостями

В этом руководстве мы покажем вам, как использовать инструмент сборкиGradle для создания одного файла Jar с зависимостями.

Используемые инструменты:

  1. Gradle 2.0

  2. JDK 1,7

  3. Вход 1.1.2

1. Каталог проектов

Создайте следующую структуру папок проекта:

gradle-hello-folder

По умолчанию Gradle использует стандартную структуру проекта Maven.

  1. ${Project}/src/main/java/

  2. ${Project}/src/main/resources/

  3. ${Project}/src/test/java/

2. Файлы Java

Один файл Java для распечатки текущей даты и времени, а также для записи сообщения в журнал.

DateUtils.java

package com.example;

import java.util.Date;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class DateUtils{

    private static final Logger logger = LoggerFactory.getLogger(DateUtils.class);

    public static void main(String[] args) {

        logger.debug("[MAIN] Current Date : {}", getCurrentDate());
        System.out.println(getCurrentDate());
    }

    private static Date getCurrentDate(){
        return new Date();
    }

}

logback.xml




    
      

        
            %-5level %logger{36} - %msg%n
        

      
    

    
      
    

3. build.gradle

Примерbuild.gradle для создания файла Jar вместе с его зависимостями для логбэка.

build.gradle

apply plugin: 'java'
apply plugin: 'eclipse'

version = '1.0'
sourceCompatibility = 1.7
targetCompatibility = 1.7

//create a single Jar with all dependencies
task fatJar(type: Jar) {
    manifest {
        attributes 'Implementation-Title': 'Gradle Jar File Example',
            'Implementation-Version': version,
            'Main-Class': 'com.example.DateUtils'
    }
    baseName = project.name + '-all'
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar
}

//Get dependencies from Maven central repository
repositories {
    mavenCentral()
}

//Project dependencies
dependencies {
    compile 'ch.qos.logback:logback-classic:1.1.2'
}

4. Создать файл JAR

Очистить проект.

$ gradle clean

Запустите задачу GradlefatJar.

$ gradle fatJar

:compileJava
:processResources
:classes
:fatJar

BUILD SUCCESSFUL

Total time: 6.4 secs

Jar создается в папке$project/build/libs/.

gradle-build-folder

5. Запустить его

Запускаем -java -jar hello-all-1.0.jar.

$Project\build\libs> java -jar hello-all-1.0.jar
16:22:13,249 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
16:22:13,249 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
//...

DEBUG com.example.DateUtils - [MAIN] Current Date : Wed Aug 27 16:22:13 SGT 2014
Wed Aug 27 16:22:13 SGT 2014

Готово.

Скачать исходный код

Скачать -gradle-create-single-jar.zip (1,4 КБ)