我是Gradle,nexus和Maven的新手,并尝试使用Gradle'发布'任务将Jenkins的maven工件发布到新的nexus存储库 . Jenkins作业在发布时失败并出现以下错误 . 我在作业中提供了Nexus的用户名和密码 .
:common-test:publishMavenJavaPublicationToMavenRepositoryCould not find metadata
com.xx.audit:common-test:1.0.3-SNAPSHOT/maven-metadata.xml in
remote (https://nexus.xx.com:8443/content/repositories/snapshots)
Upload https://nexus.xx.com:8443/content/repositories/snapshots/yy/audit/common-test/1.0.3-SNAPSHOT/common-test-1.0.3-20151102.120123-1.jar
Could not transfer artifact com.xx.audit:common-test:jar:1.0.3-20151102.120123-1
from/to remote (https://nexus.xx.com:8443/content/repositories/snapshots):
Could not write to resource 'yy/audit/common-test/1.0.3-SNAPSHOT/common-test-1.0.3-20151102.120123-1.jar'
在第一次发布之前,我们是否需要在nexus maven存储库中创建文件夹结构?并添加maven-metadata.xml?如何生成* .pom.sha,* .pom.md5 . 请帮帮我 .
build.gradle配置:
apply plugin: "maven-publish"
//* New Gradle task to jar source
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
//* New Gradle task to jar javadoc
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
artifact sourcesJar {
classifier "sources"
}
}
}
}
publishing {
repositories {
maven {
credentials {
username nexusUsername
password nexusPassword
}
if (project.version.endsWith('-SNAPSHOT')) {
url nexusSnapshotRepoURL
} else {
url nexusReleaseRepoURL
}
}
}
}
1 回答
我不知道maven-publish Gradle插件 . 通常使用uploadArchives任务 . 有关其用法的完整示例,请参见Nexus book examples project . 使用它作为参考来测试您的凭据和设置 .