Gradle でプロジェクトファイル一式を ZIP アーカイブするタスクを定義する
概要
- Gradle でプロジェクトファイル一式を ZIP アーカイブするタスクを定義する
- 動作確認環境: Gradle 6.6 + Java 14 (AdoptOpenJDK 14.0.2)
build.gradle
plugins {
id 'java'
}
repositories {
mavenCentral()
}
version = '1.2.3'
dependencies {
// 使うライブラリなどを指定
implementation 'com.google.guava:guava:29.0-jre'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.6.2'
}
// プロジェクトファイル一式を ZIP アーカイブするタスクを定義
task myZip(type: Zip) {
// ZIP ファイルを出力するディレクトリ
destinationDirectory = file('..') // 一つ上の階層にしておく
// アーカイブするファイル名
archiveFileName =
'myapp-' +
archiveVersion.get() + '-' +
new Date().format('yyyyMMdd_HHmmss_SSS') + '.zip'
// プロジェクトディレクトリ
from '.' // カレントディレクトリ
// Gradle による生成ファイル置き場 (build ディレクトリ) や
// .gradle などの隠しディレクトリを ZIP ファイルに含めない
excludes = ['build', '.*']
}
動作確認
ソースコードだけでなくテキストファイルや画像ファイルなどもプロジェクト一式に含まれていることを想定。
$ find .
.
./foodir
./foodir/foo.jpg
./foodir/foo.png
./foo.txt
./build.gradle
./src
./src/test
./src/test/resources
./src/test/resources/mytest.properties
./src/test/java
./src/test/java/myapp
./src/test/java/myapp/AppTest.java
./src/main
./src/main/resources
./src/main/resources/myapp.properties
./src/main/java
./src/main/java/myapp
./src/main/java/myapp/App.java
定義したタスク myZip を実行。
$ gradle myZip
BUILD SUCCESSFUL in 651ms
1 actionable task: 1 executed
ZIP ファイルの中身を確認。
$ unzip -l ../myapp-1.2.3-20200816_091726_068.zip
Archive: ../myapp-1.2.3-20200816_091726_068.zip
Length Date Time Name
--------- ---------- ----- ----
0 08-16-2020 07:45 foodir/
14526 08-16-2020 09:16 foodir/foo.jpg
18136 10-18-2019 18:50 foodir/foo.png
84 08-16-2020 09:14 foo.txt
998 08-16-2020 08:51 build.gradle
0 08-16-2020 06:59 src/
0 08-16-2020 06:59 src/test/
0 08-16-2020 09:16 src/test/resources/
9 08-16-2020 09:17 src/test/resources/mytest.properties
0 08-16-2020 06:59 src/test/java/
0 08-16-2020 06:59 src/test/java/myapp/
357 08-16-2020 06:59 src/test/java/myapp/AppTest.java
0 08-16-2020 06:59 src/main/
0 08-16-2020 09:16 src/main/resources/
9 08-16-2020 09:16 src/main/resources/myapp.properties
0 08-16-2020 06:59 src/main/java/
0 08-16-2020 06:59 src/main/java/myapp/
286 08-16-2020 06:59 src/main/java/myapp/App.java
--------- -------
34405 18 files
参考資料
Author And Source
この問題について(Gradle でプロジェクトファイル一式を ZIP アーカイブするタスクを定義する), 我々は、より多くの情報をここで見つけました https://qiita.com/niwasawa/items/ce35a97a97d376d2587a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .