なにか作る

なにかを作るブログです。

依存するライブラリの jar ファイルを取得するためだけに Gradle を使用したいそんな時

そんな時もあると思う

元々 Eclipse で開発していたプロジェクトを Gradle Project としてインポートすることができないから、Gradle を導入したとしても Eclipse 上で依存性が反映されない。そんな時もあると思う。

そんな時の対処法として、以下の方法を考えた。

build.gradle

apply plugin: 'war'

def dependenciesCopyTargetDirName = 'dependencies'

repositories {
  mavenCentral()
}

dependencies {
  compile 'com.google.guava:guava:18.0'
  testCompile 'junit:junit:4.11'
  providedCompile 'javax:javaee-api:7.0'
}

task deleteDependencies(type: Delete) {
  delete dependenciesCopyTargetDirName
}

task copyDependencies(type: Copy, dependsOn: deleteDependencies) {
  from configurations.testRuntime - configurations.providedRuntime
  into dependenciesCopyTargetDirName
}

これでgradle copyDependenciesを実行すれば dependenciesCopyTargetName で指定したフォルダ (dependencies) に jar ファイルがダウンロードされてコピーされる。

Eclipse 上でコピーされた jar ファイルをビルドパスに追加して使用しよう。

補足

from configurations.testRuntime - configurations.providedRuntimeになってるのは、一応 Gradle でビルドするときにも使えるようにするため。Java EE のランタイムは Eclipse 上だと通常 AP サーバーのものを使うからね。