1

私は本当にこれでいくつかの助けを使うことができました!

Gradleのドキュメントによると、最新のロジックを機能させるには、次のようにします。

task transform {
    ext.srcFile = file('mountains.xml')
    ext.destDir = new File(buildDir, 'generated')
    inputs.file srcFile
    outputs.dir destDir

これはすべて、定義しているタスクに適しています。ただし、Eclipseプラグインを使用して、.classpathファイルにいくつかの変更を加えています。最新は機能しません。つまり、(少なくとも私にとっては)箱から出して何度もタスクを実行します。これが私が持っているものです:

eclipse {
    classpath {
        //eclipseClasspath.inputs.file // something like this??? but what to set it to?
        //eclipseClasspath.outputs.file //  here too
        file {
            withXml {

                def node = it.asNode()
                // rest of my stuff here

2つのコメントアウト行があるいくつかのことを試しました。それらがうまくいかなかったので、私は本当に手がかりがなく、いくつかの助けを使うことができることに気づきました!前もって感謝します!

4

1 に答える 1

0

私の経験では、Eclipse タスクを毎回再実行する必要はありません。それは、入力または出力のいずれかを変更するために何かをしていると思います。Gradle が生成した後に Eclipse プロジェクトを変更したり、依存関係を変更したりする場合、当然 upToDate チェックがトリガーされます。

毎回強制的に実行する必要がある場合は、これで動作させることができるかもしれません。他の出力が既に定義されているときにこれを使用したことがあるかどうかはわかりません。

eclipseClasspath {
  outputs.upToDateWhen { true } //there isn't an equivalent for inputs
}

重要な注意事項の 1 つは、使用していたのはプロジェクトを説明する Eclipse モデルであり、実際のタスク自体ではないということです。

eclipse {  //this is the eclipse model
  classpath {

  }
}

eclipseClasspath {
  //this is a task
}

eclipseProject {
  //this is a task
}
于 2012-08-23T22:37:02.967 に答える