我正在尝试发布到本地存储库,但要显式设置工件名称。 例如,假设组织是“quick.fox”,模块是“core”,版本是 1.1。
我得到的是:
<repo>/quick.fox/core/1.1/core-1.1.jar
我想要的:
<repo>/quick.fox/core/1.1/prefix-core.jar
基本示例代码是:
apply plugin: 'maven-publish'
publishing {
publications {
maven(MavenPublication) {
group = "quick.fox"
artifactId = "core"
version = "1.1"
}
}
}
我该怎么做?我正在使用 Gradle 6.5.1,并且我愿意使用 maven 或 ivy 发布插件。
要获取工件名称格式(
prefix-core.jar
而不是core-1.1.jar
),您需要在发布配置中自定义
artifactId
和version
,并使用artifact
块指定工件文件。
我假设您有一个要发布的 jar 任务或预构建的 jar。如果您在构建过程中生成 jar,请确保其名称与您指定的名称相匹配。
查看 Gradle 6.5.1 MavenPublication,您需要使用
groupId
,而不是 group
。
apply plugin: 'maven-publish'
publishing {
publications {
maven(MavenPublication) {
groupId = "quick.fox"
artifactId = "core"
version = "1.1"
// Assuming 'jar' task exists and outputs the desired JAR file name
artifact(tasks.jar) {
// Explicitly setting the artifact file name
builtBy tasks.jar
extension 'jar'
classifier null
name "prefix-core"
}
}
}
}
// Make sure your jar task produces a JAR with the name 'prefix-core.jar'
tasks.jar {
archiveBaseName.set("prefix-core")
version = null // Avoid appending version to the jar file name
}
archiveBaseName
任务的jar
设置为prefix-core
,并且将version
置空以防止将其附加到文件名中。这意味着生成的 jar 文件与出版物中 artifact
块中指定的名称相匹配。
但是,这再次假设您正在使用生成工件的
jar
任务。如果您正在使用预构建的 jar 或其他类型的工件,您可能需要调整 artifact
块以指向正确的文件。