1

このような例でgradleのマニュアルに従ってみましたが、Eclipseタスクの前にcopyJarsがまったく実行されていません。(EclipseタスクはEclipseプラグインから取得されます)

task('copyJars') { 

    ext.collection = files { genLibDir.listFiles() }
    delete ext.collection
    copy { from configurations.compile into genLibDir }
    copy { from fixedLibDir into genLibDir }
}

eclipse.dependsOn = copyJars

task('setupAll', dependsOn: 'eclipse') {
    description = 'Update jars from remote repositories and then fix eclipse classpath for stbldfiles project'
}
4

1 に答える 1

3

このビルドスクリプトにはいくつかの問題があります。

  • eclipseタスクを参照するのではなく、同じ名前のモデルオブジェクトを参照します。(例外はありませんeclipse.dependsOnか?)
  • タスクcopyJarsは、実行フェーズではなく構成フェーズで機能します(つまり、タスクが実行されていない場合でも、ビルドごとに)

これを修正するには、とを使用tasks.eclipse.dependsOn(copyJars)task copyJars << { ... }ます。

もう1つの質問は、事をコピーして事後にEclipseクラスパスを修正するよりも簡単な方法はないかというcopyJarsことですが、それを伝えるにはさらに多くの情報が必要です。

于 2012-06-21T00:50:20.357 に答える