web-dev-qa-db-ja.com

Gradle-ファイルのコピー/名前の変更-すべてのファイルのファイルサイズ/バイトを0にします

Gradleビルドを使用してJavaをコンパイルしています。

ビルド中に、ビルドの成果物を正常に取得しますが、Gradleビルドによってビルドされた「.war」ファイル内に存在するいくつかのファイルのコピーまたは名前変更であるファイルをいくつか追加したいと思います。

次のコードは私が使用しているものです。私がやろうとしていることは:

1。 build/tmp/warApplicationフォルダー内の.warファイルをunwarします。
2。ファイルをコピー/名前変更します。つまり、oldname-1.2.3からnewname-1.2.3に変更します。
3。 oldname.war.propertiesファイルをnewname.war.propertiesにコピー/名前変更します
4。 oldname.jar.propertiesファイルをnewname.jar.propertiesにコピー/名前変更します
5。 build/tmp/warApplicationフォルダー内のすべてのデータをwarし、元の.warファイル(projectname.war)を作成します。

問題:
1。 unwarステップが完了すると、tmp/warApplicationフォルダーの下に、ツリー内のすべてのファイルの有効なファイルサイズが表示されます。 2. warApplication.doLast-動作します。つまり、エラーメッセージは表示されません。
3。すべてのコピー/名前変更手順が完了すると、tmp/warApplicationフォルダーツリーまたはサブツリーレベルの下のファイルサイズが0バイトになっていることがわかります。

私は何が欠けていますか?サイズXバイトのファイルAを同じXバイトのファイルBにコピーするにはどうすればよいですか。

// add a few extra files
warApplication.doLast {
   def tempWarDirU = new File("${buildDir}/tmp/warApplication")
   tempWarDirU.mkdirs()
   ant.unwar(src: "${buildDir}/thidsWar/${thidsProjectName}.war",
            dest: "${buildDir}/tmp/warApplication")

   println ""
   println "--- Inside warApplication - last stage ---"
   println ""
   copy {
      from "${buildDir}/tmp/warApplication"
      into "${buildDir}/tmp/warApplication"
      rename (/([a-z]+)-([0-9]+\.[0-9]+.+)/, 'newname-$2')
   }
   copy {
      from "${buildDir}/tmp/warApplication/WEB-INF/classes"
      into "${buildDir}/tmp/warApplication/WEB-INF/classes"
      rename (/([a-z]+)\.war\.([a-z]+)/, 'newname.war.$2')
   }
   copy {
      from "${buildDir}/tmp/warApplication/WEB-INF/classes"
      into "${buildDir}/tmp/warApplication/WEB-INF/classes"
      rename (/([a-z]+)\.jar\.([a-z]+)/, 'newname.jar.$2')
   }

   ant.jar ( update: "true", destfile: "${buildDir}/thidsWar/${thidsProjectName}_1.war") {
      fileset(dir: "${buildDir}/tmp/warApplication",includes: '*/**')
   }
   println ""
   println ""
}
11
Arun Sangal

「含める」セクションに言及する必要がありました。それがなければ、 'すべてのファイルをツリーの0バイトにコピーしていました。

   copy {
      from "${buildDir}/tmp/warApplication"
      into "${buildDir}/tmp/warApplication"
      include "${thidsProjectName}-$project.version"
      rename (/([a-z]+)-([0-9]+\.[0-9]+.+)/, 'newname-$2')
   }
   copy {
      from "${buildDir}/tmp/warApplication/WEB-INF/classes"
      into "${buildDir}/tmp/warApplication/WEB-INF/classes"
      include "${thidsProjectName}.war.properties"
      rename (/([a-z]+)\.war\.([a-z]+)/, 'newname.war.$2')
   }
   copy {
      from "${buildDir}/tmp/warApplication/WEB-INF/classes"
      into "${buildDir}/tmp/warApplication/WEB-INF/classes"
      include "${thidsProjectName}.jar.properties"
      rename (/([a-z]+)\.jar\.([a-z]+)/, 'newname.jar.$2')
   }
6
Arun Sangal

より簡単な解決策は、PeteNのおかげです。

task renABCToXYZ {
    doLast {
        file("ABC").renameTo(file("XYZ"))
    }
}
18
Arun Sangal