Gradle Create a Jar file with dependencies
By:Roy.LiuLast updated:2019-08-17
In this tutorial, we will show you how to use Gradle build tool to create a single Jar file with dependencies.
Tools used :
- Gradle 2.0
- JDK 1.7
- Logback 1.1.2
1. Project Directory
Create following project folder structure :
By default, Gradle is using the standard Maven project structure.
- ${Project}/src/main/java/
- ${Project}/src/main/resources/
- ${Project}/src/test/java/
2. Java Files
A single Java file to print out the current date time, and logs the message with logback.
DateUtils.java
package com.mkyong; 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
<?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern> %-5level %logger{36} - %msg%n </Pattern> </layout> </appender> <root level="debug"> <appender-ref ref="STDOUT" /> </root> </configuration>
3. build.gradle
A build.gradle sample to create a Jar file along with its logback dependencies.
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.mkyong.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. Create a Jar File
Clean the project.
$ gradle clean
Run the Gradle fatJar task.
$ gradle fatJar :compileJava :processResources :classes :fatJar BUILD SUCCESSFUL Total time: 6.4 secs
The Jar is created under the $project/build/libs/ folder.
5. Run It
Run it – 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.mkyong.DateUtils - [MAIN] Current Date : Wed Aug 27 16:22:13 SGT 2014 Wed Aug 27 16:22:13 SGT 2014
Done.
References
From:一号门
COMMENTS