Gradle – 依存関係を持つJarファイルを作成する
このチュートリアルでは、http://www.gradle.org[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ファイルで、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
ログバックの依存関係とともにJarファイルを作成する `build.gradle`サンプル。
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. Jarファイルを作成する
プロジェクトをクリーニングします。
$ gradle clean
Gradleの `fatJar`タスクを実行します。
$ 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.mkyong.DateUtils -[MAIN]Current Date : Wed Aug 27 16:22:13 SGT 2014 Wed Aug 27 16:22:13 SGT 2014
完了しました。
ソースコードをダウンロードする
ダウンロードする – リンク://wp-content/uploads/2014/08/gradle-create-single-jar.zip[gradle-create-single-jar.zip](1.4 KB)
参考文献
: Jar Task].
Wikipedia : Gradle