2016-09-19 10 views
0

私のGradle WARビルドでは、2つの.jsファイルを外部リソースの新しいバージョンに置き換えようとしています。Gradle:WARを作成する際にソースファイルをリソースに置き換えます。

ファイルが新しい場合、私はJSフォルダ内の私の「ベース」ファイルを置き換えたい:

task downloadJs { 
    ant.mkdir(dir:"${buildDir}/js/") 
    ant.get(src:'http://external.url/js/file1.js', dest:"${buildDir}/js/file1.js", usetimestamp: true, ignoreerrors: true) 
    ant.get(src:'http://external.url/js/file2.js', dest:"${buildDir}/js/file2.js", usetimestamp: true, ignoreerrors: true) 
} 

war { 
    dependsOn donwloadJs 

    from("${buildDir}/js") { 
     include '*' 
     into('js') 
    } 
} 

しかし、この構成では、戦争で重複の.jsファイルを作成します。 ダウンロードが失敗した場合にファイルが存在しないように、元のファイルを削除したくありません。

ファイルを上書きするためにwarコピーの設定をどのように伝えることができますか? duplicatesStrategyは機能していないようですが、失敗するか重複を残すことはできますが、上書きすることはできません。

答えて

0

まあ、私自身が道を見つけた:

war { 
    dependsOn downloadJs 

    from("${buildDir}/js") { 
     include '*' 
     into('js') 
    } 

    exclude { 
     it.path.startsWith("js") && file("${buildDir}/js/${it.name}").exists() 
    } 
} 

キーがほかに新しいファイルをコピーできるようになり、他のルールによって、原稿を除外しますが、ダウンロードされたもののみ、チェック交換用のフォルダに同じファイルが存在することを確認してください

誰かがクリーナーの方がいいですか?

関連する問題