从gradle这个Maven的发布插件的文件,很明显,您将groupId与version该项目直接的build.gradle:
group = 'org.gradle.sample'
version = '1.0'
Run Code Online (Sandbox Code Playgroud)
但是,artifactId似乎取自您正在使用的文件夹的名称.有没有办法artifactId明确设置?
Pet*_*ser 74
publishing {
publications {
maven(MavenPublication) {
groupId 'org.gradle.sample'
artifactId 'project1-sample'
version '1.1'
from components.java
}
}
}
Run Code Online (Sandbox Code Playgroud)
工件ID默认为配置的项目名称settings.gradle,而项目名称默认为项目目录的名称.
小智 12
与根settings.gradle文件相关,您可以使用以下命令更改根项目的名称:
rootProject.name = 'myproject'
Run Code Online (Sandbox Code Playgroud)
但是如果要更改子项目的名称(例如,AndroidStudio项目的默认"app"子项目),您可以在根settings.gradle文件中执行以下操作:
rootProject.children.each {
it.name = ('app' == it.name ? 'MyAppName' : it.name)
}
Run Code Online (Sandbox Code Playgroud)
这是maven-publish插件的正确答案.这是作为旧版maven插件的后续版本.
如果像我一样,你仍然坚持使用旧版插件,那么"如何为gradle项目设置maven工件ID"的正确答案是:
uploadArchives {
repositories {
mavenDeployer {
pom.artifactId = 'project-sample'
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果您有一个多模块项目,并且希望工件的名称与Directory(在settings.gradle中设置)不同,那么我认为一个更好的方法是为每个子项目使用jar块,然后您可以编写baseName,它将是工件ID。然后,您不必在每个主项目中重写发布/发布块,而只需在主版本中编写一次即可。
对于每个子项目build.gradle:
jar {
baseName = 'new-artifact-name-A' //A beacause you also have B, C modules...
}
Run Code Online (Sandbox Code Playgroud)
在主build.gradle中:
publishing {
publications {
mavenJava(MavenPublication) {
artifactId jar.baseName
from components.java
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
75315 次 |
| 最近记录: |