由于 Gradle eclipse 插件创建了一个带有 $HOME 绝对路径的 .classpath 文件,我不希望人们将它提交给 VCS。我已经有一个钩子(Hook)可以拒绝带有“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说我可以使用闭包和生成器样式表示法,但是当我使用 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)
})
编译但似乎没有做任何事情。
如何添加该评论?
最佳答案
我找到了一种解决方法:Eclipse 可以方便地忽略未知标签,因此我可以将我的标记添加到一个虚拟节点中,如下所示:
it.asNode().appendNode("eclipse-ignore-this", "dontCommit")
(添加检查这样的标记是否不存在,不会无缘无故地膨胀文件。)
关于xml - 如何向 Gradle 的 eclipse 任务的类路径添加注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25938288/