Gradleのインストールと設定

2018年7月13日

gradleのインストールとパス設定

https://services.gradle.org/distributions
からgradle-*.*-all.zipをダウンロードし、適当な場所に解凍する。

解凍したフォルダの中のbinフォルダを実行パスに含めておく。こうしておかないと後々面倒。コマンドプロンプトを開き、テストしてみる。

WARNINGが発生しているのは、Java9でGradle4.4.1を使用しているため。実質的な問題は無い模様。詳細はここにある。

キャッシュファイルと設定ファイル

マシン全体のキャッシュファイルと設定ファイル

gradleにて何らかの動作を行うと以下の場所に勝手にキャッシュファイルが作成される(windowsの場合)。

c:\users\ユーザ名\.gradle

この下にcaches,daemon,nativeというフォルダが作成されるが、特に重要なのはcachesで、ここにリポジトリから取得したアーティファクト(jarと依存関係を記述したファイル)がキャッシュされる。リポジトリとの整合性が無くなるなどした場合には、いつでも削除してしまってよい。必要な場合には再度勝手に構築される。

また、gradle.propertiesという設定ファイルを作成して、そこにプロパティ値を書き込んでおくことにより、作業中の全プロジェクトについてのこれらの設定値を一度に変更することができる。

c:\users\ユーザ名\.gradle\gradle.properties

例えばここには以下のように記述する。この例は192.168.177にてartifactoryを動作させており、それをセントラルリポジトリのキャッシュとしても、インハウスリポジトリとしても使用する場合。

CENTRAL_REPOSITORY=http://192.168.1.177:8081/artifactory/libs-release
INHOUSE_REPOSITORY=http://192.168.1.177:8081/artifactory/libs-release-local
INHOUSE_USER=admin
INHOUSE_PASSWORD=password

後ほど述べるbuild.gradleにこれらのプロパティ値を指定することになる。

なお、以下も指定しておいた方が無難

org.gradle.jvmargs=-Dfile.encoding=UTF-8

javaコンパイラに対するエンコーディング指定はbuild.gradle内で行うことができるが、warファイルのエンコーディングがおかしくなるらしく、tomcat上で以下のエラーになってしまう。

20-Aug-2015 14:50:20.458 SEVERE [localhost-startStop-32] org.apache.catalina.startup.HostConfig.deployWAR Web /opt/apache-tomcat-8.0.5/webapps/sample.war
java.lang.IllegalArgumentException: MALFORMED
at java.util.zip.ZipCoder.toString(Unknown Source)
at java.util.zip.ZipFile.getZipEntry(Unknown Source)
at java.util.zip.ZipFile.access$900(Unknown Source)

現在使用中のgradle.properties

2018/1現在使用しているものは以下。複数のプロジェクトのそれぞれのbuild.gradleで共通に使用したいものをここにまとめてある。

CENTRAL_REPOSITORY=http://10.8.92.1:8082/artifactory/libs-release
INHOUSE_REPOSITORY=http://10.8.92.1:8082/artifactory/libs-release-local
INHOUSE_USER=admin
INHOUSE_PASSWORD=password
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -Duser.language=en
GWT_261_HOME=c:/devel/gwt-2.6.1
GWT_280_HOME=c:/devel/gwt-2.8.0
GWT_281_HOME=c:/devel/gwt-2.8.1

ファイルのSHA-1ハッシュ

実際のjar及びpom.xml(依存関係等を記述したファイル)は

C:\Users\ユーザ名\.gradle\caches\modules-2\files-2.1\jp.foobar\sample\1.0\a4d0b74ffb67657678953b4d88df085bf8828318\sample-1.0.jar

として格納されることになるが、この「a4d0b74ffb67657678953b4d88df085bf8828318」の部分は、このファイルのSHA-1ハッシュコードになっている。

たとえ同じバージョンであっても、リポジトリ側とキャッシュ側で不一致が生じる可能性があるので(バージョンを変えずにリポジトリを書き換えた場合?)、これにより整合性を保つものと思われる。

プロジェクトごとのキャッシュファイルと設定ファイル

※以下はEclipseでの話。しかもプラグインによって異なると思われる。

build.gradleと同じフォルダに以下が勝手に作成される。これはバージョン管理に格納する必要はない。

  • .gradleフォルダ [[http://stackoverflow.com/questions/17200831/should-the-gradle-folder-be-added-to-version-control]]

  • gradle-app.settingファイル これは「Gradle GUI」のウインドウの位置等を保存しておくファイル。必要ない。