我想生成一个不包含依赖项的pom文件。我已经尝试使用下面的代码清除依赖项,但依赖项仍然列在生成的pom中。
install.doFirst {
repositories.mavenInstaller {
pom.dependencies.clear()
}
}
为什么我需要这个:当我将它上传到“家庭酿造”服务时,我需要一个pom文件包含在我的jar中,但是当它读取“+”时服务会爆炸依赖项的版本(我正在使用动态依赖项)。
答案 0 :(得分:7)
uploadArchives {
repositories {
mavenDeployer {
// Do not write any dependencies into the POM
pom*.whenConfigured { pom -> pom.dependencies.clear() }
}
}
}
答案 1 :(得分:0)
我最终使用以下解决方案调用gradle cleanPom
。基本上我使用XML解析器来编辑生成的POM。
apply plugin: 'maven'
pomFileLocation="build/poms/noDeps.pom"
/**
* Creates pom with dependencies
*/
task writeNewPom << {
pom {}.writeTo(pomFileLocation)
}
/**
* Reads and Overwrites POM file removing dependencies
*/
task cleanPom(dependsOn: writeNewPom) << {
def xml = new XmlParser().parse(pomFileLocation)
def nodes = []
xml.dependencies[0].each {
nodes.add(it)
}
def parrent = nodes.first().parent()
nodes.each {
parrent.remove(it)
}
new XmlNodePrinter(new PrintWriter(new FileWriter(pomFileLocation))).print(xml)
}