当我运行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存档