由于Gradle eclipse插件创建了一个带有$ HOME绝对路径的.classpath文件,我不希望别人将它提交给VCS。我已经有一个钩子,它将拒绝具有文本" dontCommit"的提交。我想在生成的.classpath XML文件中添加注释。
我在我的eclipse.classpath.withXml
关闭中尝试了这些并没有成功:
def root = it.asNode()
root.children()[0].appendNode(org.w3c.dom.Node.COMMENT_NODE, "dontCommit")
这使用枚举中COMMENT_NODE的位置作为元素名称,例如<8>dontCommit</8>
。
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和构建器样式表示法,但是当我使用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 :(得分:0)
我找到了一个解决方法:Eclipse可以方便地忽略未知标记,因此我可以在虚拟节点中添加我的标记,如下所示:
it.asNode().appendNode("eclipse-ignore-this", "dontCommit")
(添加检查表明这样的标记不存在但是没有任何理由不膨胀文件。)