无法在 gradle maven-publish 插件中传输工件 pom
Could not transfer artifact pom in gradle maven-publish plugin
我使用 gradle (2.9) maven-publish 插件将文件发布到私有 nexus maven 存储库。 build.gradle 文件是
apply plugin: 'maven-publish'
publishing {
repositories {
maven {
name "example-maven"
url "https://..."
credentials {
username mavenUser
password mavenPassword
}
}
}
publications {
maven(MavenPublication) {
groupId 'com.example.karaf-utils'
artifactId 'esa-bootstrapper'
version '1.0.0'
artifact source: "${projectDir}/kar/example.esa.bootstrapper.kar", extension: 'kar'
}
}
}
kar 文件已正确上传,在 nexus 中我可以看到预期的 xml 描述符:
<dependency>
<groupId>com.example.karaf-utils</groupId>
<artifactId>esa-bootstrapper</artifactId>
<version>1.0.0</version>
<type>kar</type>
</dependency>
但不幸的是,在执行 publish
任务期间,出现以下错误:
gradle :com.example.karaf.subsys.bootstrap:publish
:com.example.karaf.subsys.bootstrap:generatePomFileForMavenPublication
:com.example.karaf.subsys.bootstrap:publishMavenPublicationToexample-mavenRepository
Upload https://nexus.dev.example.io/nexus/content/repositories/example-maven/com/example/karaf-utils/esa-bootstrapper/1.0.0/esa-bootstrapper-1.0.0.kar
Upload https://nexus.dev.example.io/nexus/content/repositories/example-maven/com/example/karaf-utils/esa-bootstrapper/1.0.0/esa-bootstrapper-1.0.0.kar.sha1
Upload https://nexus.dev.example.io/nexus/content/repositories/example-maven/com/example/karaf-utils/esa-bootstrapper/1.0.0/esa-bootstrapper-1.0.0.kar.md5
Upload https://nexus.dev.example.io/nexus/content/repositories/example-maven/com/example/karaf-utils/esa-bootstrapper/1.0.0/esa-bootstrapper-1.0.0.pom
Could not transfer artifact com.example.karaf-utils:esa-bootstrapper:pom:1.0.0 from/to remote (https://nexus.dev.example.io/nexus/content/repositories/example-maven): Could not write to resource 'com/example/karaf-utils/esa-bootstrapper/1.0.0/esa-bootstrapper-1.0.0.pom'
:com.example.karaf.subsys.bootstrap:publishMavenPublicationToexample-mavenRepository FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':com.example.karaf.subsys.bootstrap:publishMavenPublicationToexample-mavenRepository'.
> Failed to publish publication 'maven' to repository 'example-maven'
> Failed to deploy artifacts: Could not transfer artifact com.example.karaf-utils:esa-bootstrapper:pom:1.0.0 from/to remote (https://nexus.dev.example.io/nexus/content/repositories/example-maven): Could not write to resource 'com/example/karaf-utils/esa-bootstrapper/1.0.0/esa-bootstrapper-1.0.0.pom'
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
我该如何解决这个错误?
问题已解决:关键是我试图覆盖 nexus 中现有的 pom 文件。我删除了 kar 文件,但我忘记在 运行 gradle 任务之前删除 pom。
我使用 gradle (2.9) maven-publish 插件将文件发布到私有 nexus maven 存储库。 build.gradle 文件是
apply plugin: 'maven-publish'
publishing {
repositories {
maven {
name "example-maven"
url "https://..."
credentials {
username mavenUser
password mavenPassword
}
}
}
publications {
maven(MavenPublication) {
groupId 'com.example.karaf-utils'
artifactId 'esa-bootstrapper'
version '1.0.0'
artifact source: "${projectDir}/kar/example.esa.bootstrapper.kar", extension: 'kar'
}
}
}
kar 文件已正确上传,在 nexus 中我可以看到预期的 xml 描述符:
<dependency>
<groupId>com.example.karaf-utils</groupId>
<artifactId>esa-bootstrapper</artifactId>
<version>1.0.0</version>
<type>kar</type>
</dependency>
但不幸的是,在执行 publish
任务期间,出现以下错误:
gradle :com.example.karaf.subsys.bootstrap:publish
:com.example.karaf.subsys.bootstrap:generatePomFileForMavenPublication
:com.example.karaf.subsys.bootstrap:publishMavenPublicationToexample-mavenRepository
Upload https://nexus.dev.example.io/nexus/content/repositories/example-maven/com/example/karaf-utils/esa-bootstrapper/1.0.0/esa-bootstrapper-1.0.0.kar
Upload https://nexus.dev.example.io/nexus/content/repositories/example-maven/com/example/karaf-utils/esa-bootstrapper/1.0.0/esa-bootstrapper-1.0.0.kar.sha1
Upload https://nexus.dev.example.io/nexus/content/repositories/example-maven/com/example/karaf-utils/esa-bootstrapper/1.0.0/esa-bootstrapper-1.0.0.kar.md5
Upload https://nexus.dev.example.io/nexus/content/repositories/example-maven/com/example/karaf-utils/esa-bootstrapper/1.0.0/esa-bootstrapper-1.0.0.pom
Could not transfer artifact com.example.karaf-utils:esa-bootstrapper:pom:1.0.0 from/to remote (https://nexus.dev.example.io/nexus/content/repositories/example-maven): Could not write to resource 'com/example/karaf-utils/esa-bootstrapper/1.0.0/esa-bootstrapper-1.0.0.pom'
:com.example.karaf.subsys.bootstrap:publishMavenPublicationToexample-mavenRepository FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':com.example.karaf.subsys.bootstrap:publishMavenPublicationToexample-mavenRepository'.
> Failed to publish publication 'maven' to repository 'example-maven'
> Failed to deploy artifacts: Could not transfer artifact com.example.karaf-utils:esa-bootstrapper:pom:1.0.0 from/to remote (https://nexus.dev.example.io/nexus/content/repositories/example-maven): Could not write to resource 'com/example/karaf-utils/esa-bootstrapper/1.0.0/esa-bootstrapper-1.0.0.pom'
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
我该如何解决这个错误?
问题已解决:关键是我试图覆盖 nexus 中现有的 pom 文件。我删除了 kar 文件,但我忘记在 运行 gradle 任务之前删除 pom。