如何向已发布的gradle模块元数据中添加作者信息



当我运行generateMetadataFileFormMavenPublication任务时,我在build/publications/maven/module.json处得到一个json,缺少这些字段:名称,描述,minimumCoreVersion,标题,版本,作者。IntelliJ提示我将它们添加回去。作者(开发人员)出现在生成的pom文件中。我还缺少什么添加这个(和其他必需的字段)到module.json文件?

这似乎是gradle的疏忽,因为从他们的例子(以及我自己的经验)来看,仅仅添加这个就足以发布一个jar:

publishing { publications { maven(MavenPublication) {
groupId project.group; artifactId project.name; version project.version
from components.java;
} } }

下面是我正在使用的groovy代码:

publishing {
publications {
maven(MavenPublication) {
pom {
name = project.name
description = (project.name + ' description')
developers {
developer {
id = 'daveankin'
name = 'Dave Ankin'
email = 'daveankin@gmail.com'
organizationUrl = 'https://example.com'
}
}
}
groupId project.group
artifactId project.name
version project.version
from components.java
withBuildIdentifier()
}
}
}

您可能需要一个Manifest文件来指定作者。我是这样使用任务的:

jar {
manifest {
attributes(
"Class-Path": sourceSets.main.compileClasspath.asPath,
"Main-Class": "MainClass",
"Implementation-Title": project.name,
"Implementation-Version": archiveVersion,
"Implementation-Vendor": "Specify Author here",
"Build-Jdk": org.gradle.internal.jvm.Jvm.current(),
"Gradle-Version":GradleVersion.current().toString()
)
}
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}

}

我希望它会帮助你。您还可以查看Oracle规范:https://docs.oracle.com/javase/8/docs/technotes/guides/jar/jar.html#JARManifest

如果您将使用类似的任务,那么演员的名字将存储在MANIFEST文件中。Manifest文件将被添加到结果JAR存档

最新更新