使用gradle插件maven pbulish上傳jar到Maven倉庫時,如何排除gradle專案中的一些依賴?我的畢業。構建檔案如下:
dependencies {
compile project(":frame:f_frame");
compile project(":p_AppComm");
compile project(":p_Systemaudit");
}
publishing {
repositories {
maven {
url = 'http://XXX/repository/infra_test_snapshot/'
credentials {
username = 'admin'
password = 'admin'
}
}
}
publications {
maven(MavenPublication) {
groupId "AAAAA"
artifactId "BBBBB"
version "CCCCC"
from components.java
pom.withXml {
def dependenciesNode = asNode().appendNode('dependencies')
configurations.implementation.allDependencies.each {
if (it.name != null && !"unspecified".equals(it.name) && !"f_frame".equals(it.name) && !"p_AppComm".equals(it.name)) {
println it.toString()
def dependencyNode = dependenciesNode.appendNode('dependency')
dependencyNode.appendNode('groupId', it.group)
dependencyNode.appendNode('artifactId', it.name)
dependencyNode.appendNode('version', it.version)
dependencyNode.appendNode('scope', 'implementation')
}
}
}
artifact sourceJar {
classifier "sources"
}
}
}
}
我如何修改的內容,pom.withxml功能去除f_frame,并p_Appcomm在Maven倉庫中的POM檔案的依賴。
uj5u.com熱心網友回復:
dependencyNode.appendNode('scope', 'implementation'). maven 沒有任何“實作”范圍,有效值為 - compile、provided、runtime、test列印依賴項回圈中依賴項的所有名稱/型別 - 排除所有“專案”型別依賴項 - 就像你的 if 條件
uj5u.com熱心網友回復:
使用maven-publish插件發布jar包時,自動生成的POM檔案根據dependencies{}. 我不應該再次添加相同的依賴項。正確的方法是回圈asNode()并移除我不需要的部分。
修改后的代碼如下:
pom.withXml {
Node pom = asNode()
NodeList pomNodes = pom.value()
Node dependencies = pomNodes.get(4)
NodeList pomDependencies = dependencies.value()
Iterator iterator = pomDependencies.iterator();
while (iterator.hasNext()) {
Node dependeny = iterator.next()
NodeList str = dependeny.get("artifactId")
String dependName = str.get(0).value().get(0)
if ("f_frame".equals(dependName) || "p_AppComm".equals(dependName)) {
iterator.remove()
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/341210.html
