2017-07-05 5 views
0

私はグラデルフィルタリングを使用して、以下のコードを使用して1つのlog4j.xml内のトークンを置き換えています。Gradleトークンを置き換えます

import org.apache.tools.ant.filters.ReplaceTokens 
task copylog4jEnvSpecific(type:Copy){ 
     from("$config_dir/"+"$env") 
     into("$webAppDir/WEB-INF/classes") 
     include "**/log4j.xml" 
     filter(ReplaceTokens, tokens: [LOG_HOME: project.rootDir]) 
} 

が、私はというエラーを取得しています

Execution failed for task ':copylog4jEnvSpecific'. 

ファイルをコピーできませんでした「C:\ユーザーは\ <> \ RWS \ confに\ <> \設定\ DEV \のlog4j.xml 'を' C:¥Users¥<>¥rws¥build¥WebContent¥WEB-INF¥classes¥log4j.xml 'にコピーします。

答えて

0

ここで詳しい情報が必要です。多分--stacktraceであなたのビルドを走らせてください。

C:\Users\<>\rwsはプロジェクトパスですか?

いつタスクを実行しますか?おそらくbuildディレクトリが存在しないのでしょうか? WebContent\WEB-INF\classes\とは何ですか?

あなたは、あなたのタスクが持つビルドタスクの後に実行されていることを確認することができます。

copylog4jEnvSpecific.dependsOn build 
+0

それはproject.rootDirはjava.io.Fileのフィルタを返すようです(ReplaceTokens、トークン:[LOG_HOME:project.rootDirを] )文字列が必要です。以下のコードで修正されました フィルター(ReplaceTokens、トークン:[LOG_HOME:FilenameUtils.separatorsToSystem(project.rootDir.getAbsolutePath()+ "\\ logs")]) とにかく助けてくれてありがとう。 – shashi

+0

@shashi投票は感謝のためです;)問題は素晴らしいことはありません。 – LazerBanana

関連する問題