Bri*_*her 0 gradle maven-plugin pom.xml maven
task writeNewPom {
pom {
project {
/*
build {
plugins {
plugin {
groupId 'GROUP_ID'
artifactId 'maven-ipcentral-plugin'
version '4.7'
executions {}
configuration {
url "http://CENTRAL_REPORTING_SERVER"
logfileprefix "test"
ipcProject = true
businessUnit "FOUR_DIGIT_CODE"
componentEditorsGrouper "ccp-dev"
assetEditorsGrouper "ccp-dev"
username "USERNAME"
}
}
}
}
*/
pluginRepositories {
pluginRepository {
id 'ipcentral-snapshots'
name 'IPCentral Snapshot Repository'
url 'http://PLUGIN_SOURCE/'
snapshots {
enabled = false
}
releases {
enabled = true
}
}
}
profiles {
profile {
id 'inject-cec-credentials'
activation {
activeByDefault = true
}
properties {
username = "USERNAME"
}
}
}
}
}.writeTo("ipcentral/pom.xml")
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用gradle maven插件创建一个pom.xml文件.它必须引用为中央依赖性报告设计的maven插件.现在它成功创建了包含所有依赖项,插件存储库信息和配置文件信息的pom.xml文件.但是,如果构建部分未被注释,我会得到一个错误:
> No such property: _SCRIPT_CLASS_NAME_ for class: org.apache.maven.model.
Run Code Online (Sandbox Code Playgroud)
如果我尝试一些简单的事情
task writeNewPom {
pom {
project {
build {
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后我得到了同样的错误.似乎gradle不会将构建识别为有效标识符.我只是希望有一个比通过groovy手动编辑xml更优雅的解决方案.我能找到的唯一文档就是Gradle docs第53章
这是因为project {...}闭包委托给一个实例ModelBuilder扩展了Groovy的FactoryBuilderSupport类,该类已经定义了一个名为的方法build.因此,不是配置buildMaven Model对象的属性,而是build调用预先存在的方法.
为了解决这个问题,我将使用withXml {...}你的pom配置.
pom {
project {
// other non-<build> configuration
}
}.withXml {
asNode().appendNode('build').appendNode('plugins').appendNode('plugin').with {
appendNode('groupId', 'GROUP_ID')
}
}.writeTo('pom.xml')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
334 次 |
| 最近记录: |