Gradle - создать файл Jar с зависимостями
В этом руководстве мы покажем вам, как использовать инструмент сборкиGradle для создания одного файла Jar с зависимостями.
Используемые инструменты:
-
Gradle 2.0
-
JDK 1,7
-
Вход 1.1.2
1. Каталог проектов
Создайте следующую структуру папок проекта:

По умолчанию Gradle использует стандартную структуру проекта Maven.
-
${Project}/src/main/java/
-
${Project}/src/main/resources/
-
${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/.

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 КБ)