2014-09-19 79 views
0

由于Gradle eclipse插件创建了一个绝对路径为$ HOME的.classpath文件,我不希望人们将其提交给VCS。我已经有了一个钩子来拒绝提交文本为“dontCommit”的提交。我想为生成的.classpath XML文件添加注释。如何给Gradle的eclipse任务的类路径添加评论

我已经在我的eclipse.classpath.withXml关闭,但没有成功尝试这些:

def root = it.asNode() 
root.children()[0].appendNode(org.w3c.dom.Node.COMMENT_NODE, "dontCommit") 

它使用在枚举的元素名称,例如,<8>dontCommit</8>的COMMENT_NODE的位置。

it.asString() =~ "/(<classpath>)/<classpath> <!-- dontCommit -->/" 

这很丑陋(使用XML上的正则表达式)并且不起作用;可能该字符串没有映射回XML。 (不能怪这个......)

root.children()[0].appendNode("<!--", "dontCommit") 

这产生了<<!-->dontCommit</<!-->,即无效的XML。

http://groovy.codehaus.org/api/groovy/util/Node.html#plus%28groovy.lang.Closure%29说我可以使用Closure和builder样式表示法,但是当我使用mkp前缀时,出现编译器错误。

root.children()[0].plus { 
    mkp.comment("dontCommit") 
} 

得到No such property: mkp for class: org.gradle.api.internal.xml.XmlTransformer$XmlProviderImpl

root.classpathentry.add(0, { 
    mkp.comment("dontCommit) 
}) 

编译但似乎并没有做任何事情。

如何添加该评论?

回答

0

我找到了一个解决办法:月食方便地忽略未知的标签,这样我就可以在一个虚拟节点添加我的标志是这样的:

it.asNode().appendNode("eclipse-ignore-this", "dontCommit") 

(添加检查,这样的标记还不存在不膨胀该文件没有理由。)