2014-03-04 80 views
0

我遵循in this Gradle forum entry的建议,因为我在Gradle生成的WAR文件中由于Ant样式令牌替换而损坏了图像。但是,我无法让令牌更换正常工作。以下是WAR配置的一部分:Gradle WAR和Ant样式过滤器无法正常工作

from project(':module0').fileTree('resource') 
webInf { 
    from gradleProject.project(':module1').fileTree(dir: 'config/props/skel', 
    includes: ['*.properties', '*.xml'], excludes: ['blah1.properties', 'blah2.properties']) 
    filesMatching('classes/props/*.properties'){ 
     filter(ReplaceTokens, tokens: props) 
    } 
    filesMatching('classes/props/*.xml'){ 
     filter(ReplaceTokens, tokens: props) 
    } 
}.into('classes/props/')//.filter(ReplaceTokens, tokens: props) 

from(gradleProject.project(':module2').file('resource/version.txt'))//.filter(ReplaceTokens, tokens: props) 
filesMatching('version.txt'){ 
    filter(ReplaceTokens, tokens: props) 
} 

//filesMatching('WEB-INF/classes/props/*.properties'){ 
// filter(ReplaceTokens, tokens: props) 
//} 
//filesMatching('WEB-INF/classes/props/*.xml'){ 
// filter(ReplaceTokens, tokens: props) 
//} 

//filesMatching('WEB-INF/classes/props/*'){ 
// filter(ReplaceTokens, tokens: props) 
//} 

上面的代码仅适用于version.txt文件。 WEB-INF/classes/props中的所有文件根本不会被过滤。 filter的评论电话工作,但不知何故,它最终打破从module0/resource文件夹复制(真的很奇怪)的图像。最后,最后两个注释代码块也不起作用。

这样做的正确方法是什么?

回答

1

好吧,这是愚蠢的。显然我真的很接近:

from project(':module0').fileTree('resource') 
webInf { 
    from gradleProject.project(':module1').fileTree(dir: 'config/props/skel', 
    includes: ['*.properties', '*.xml'], excludes: ['blah1.properties', 'blah2.properties']) 
    filesMatching('WEB-INF/classes/props/*'){ 
     filter(ReplaceTokens, tokens: props) 
    } 
}.into('classes/props/')//.filter(ReplaceTokens, tokens: props) 

似乎工作正常。

0

资源目录由“processResources”,从而试图迫使它进入WEBINF(我同意烦恼处理似乎是一个合理的给定这些文件的地方最终在WEB-INF中)。 但我想你想要什么(在你的战争{}块以外):

processResources { 
     filesMatching('classes/props/*'){ 
      filter(ReplaceTokens, tokens: props) 
     } 
    } 
相关问题