gradle
eclipse上の開発において、これまでのantをgradleに変更する。antでの依存解決はivyを使用するのが通例だが、これは行ってこなかった。 gradleでは、ローカルリポジトリ・キャッシュを用いた依存解決・管理を行う。リポジトリとしてはartifactoryを使用することにする。
gradleのインストール(eclipseプラグイン含む)
gradle本体のインストール
https://services.gradle.org/distributions からgradle-2.5-all.zipをダウンロードし、適当な場所に解凍する。
eclipseプラグインのインストールと設定
eclipse marketplaceでgradleを検索し、gradle IDE packをインストール。
window/preference->GradleにてGradle DistributionをFolder指定し、先の解凍場所を指定 window/preference->Gradle EnIDEにて「Gradle home to use」に先の解凍場所を指定
キャッシュファイルと設定ファイル
マシン全体のキャッシュファイルと設定ファイル
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/plugins-release INHOUSE_REPOSITORY=http://192.168.1.177:8081/artifactory/libs-release-local INHOUSE_USER=admin INHOUSE_PASSWORD=password
後ほどノベルbuild.gradleにこれらのプロパティ値を指定することになる。
プロジェクトごとのキャッシュファイルと設定ファイル
build.gradleと同じフォルダに以下が勝手に作成される。これはバージョン管理に格納する必要はない。
.gradleフォルダ
http://stackoverflow.com/questions/17200831/should-the-gradle-folder-be-added-to-version-controlgradle-app.settingファイル
これは「Gradle GUI」のウインドウの位置等を保存しておくファイル。必要ない。
Eclipse上での操作
既存のJavaプロジェクトの変換
既存のJavaプロジェクトをGradleプロジェクトに変換するには、プロジェクト名を右クリックし、コンテキストメニューからConfigure>Convert to Gradle Projectをクリックする。以下の変更が起こる。
- .projectファイルが書き換えられる。おそらくここでGradleプロジェクトであることが示される。
- .classpathから個別に追加されていたjarファイルが削除されてしまう。代わりにGradle Dependenciesが挿入される。
- .settings/gradleというフォルダが作成される。Gradleに関する何らかの設定が格納されるものと思われる。
なぜかソースパスも空になるので、手で設定し直す必要がある。
また、これまでライブラリとして指定されていたjarファイルが削除されてしまう。が、その代わりに後に述べるbuild.gradleファイルの中の依存指定によって自動的に取得されるjarファイルが、Gradle Dependenciesの中に挿入されていく。
なお、変換を行っただけでは、build.gradle(Antのbuild.xmlにあたる)は自動で作成されることはない。これは手で作成する必要がある。