Nexus无法找到项目的pom.xml签名

时间:2016-10-05 04:35:43

标签: maven maven-3 nexus maven-release-plugin gpg-signature

我已将多模块项目作为bundle.jar上传到中央,并出现此问题: nexus sais the file is missing所以Nexus找不到pom.asc

但如果文件在the file is available

下可用,该如何丢失该文件

4 个答案:

答案 0 :(得分:1)

根据您的评论,执行以下步骤后出现此Nexus错误:

  • mvn release:prepare release:perform
  • mvn clean repository:bundle-create gpg:sign,用于创建*-0.9.12.pom.asc文件和*-bundle.jar

错误很可能与上述步骤有关,在这种情况下,这可能不适合应用,因为:

  • maven-repository-plugin插件及其create-bundle目标会为Maven项目创建上传包。但请注意,生成的*-bundle.jar文件不会附加到Maven构建(根据its sources),但只需生成项目target文件夹中的文件
  • maven-gpg-plugin及其sign目标会使用GnuPG签署项目工件,POM和附加工件
  • 您在执行的第二步中调用clean阶段,这基本上意味着在target操作后删除release:perform文件夹的内容。

因此:

  • 您应该验证bundle jar的内容(由于clean调用)
  • 你实际上没有签署jar文件(由clean调用清理),也没有签署包(如上所述),尽管提到的错误涉及POM文件而不是jar文件
  • 您正在从命令行执行gpg:sign,尽管official examples声明:
  

目前这不容易实现。 gpg在gpg运行时签署附加到构建的工件。但是,我们希望将gpg“注入”阶段     MIGHT 的工作原理是:

mvn verify gpg:sign install:install deploy:deploy   
     

但是,如果在验证阶段之后为阶段配置了其他插件,则不会运行它们。

(注意:粗体是我的。)

因此,我会检查部署过程并遵循standard程序来签署项目工件。

答案 1 :(得分:1)

除了存储库管理器中的“活动”选项卡之外,您还应该能够浏览到“内容”选项卡。检查一下,看看你的GAV坐标文件夹中找到了所有文件。似乎暂存规则找不到该文件。它可能不在那里(在存储库管理器上......不是你的本地文件系统!)

请查看our docs以获取有关如何使用Maven设置此内容的更多提示,包括演示视频和完整的示例项目。

此外,如果您遇到问题,请直接联系我或在我们的OSSRH jira项目中提出问题,以便我调查具体部署。

答案 2 :(得分:1)

对我来说,缺少+-----------------------------------------------------------------------------+ | NVIDIA-SMI 435.21 Driver Version: 435.21 CUDA Version: 10.1 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GTX 106... Off | 00000000:02:00.0 On | N/A | | 0% 41C P8 9W / 200W | 219MiB / 6075MiB | 0% Default | +-------------------------------+----------------------+----------------------+ 个文件导致签名错误。 我已经安装了gpg密钥并将其发送到ssh服务器。

根据Deploying to OSSRH with Apache Maven - Introduction,我们需要添加插件*.ascnexus-staging-maven-plugin。 然后,当您运行nexus-staging-maven-plugin时,它将在半小时内将软件包释放到repo.maven.apache.org

这是一个maven clean deploy样本

pom.xml

行家<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> ... <build> <plugins> ... <plugin> <groupId>org.sonatype.plugins</groupId> <artifactId>nexus-staging-maven-plugin</artifactId> <version>1.6.7</version> <extensions>true</extensions> <configuration> <serverId>ossrh</serverId> <nexusUrl>https://oss.sonatype.org/</nexusUrl> <autoReleaseAfterClose>true</autoReleaseAfterClose> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <version>1.5</version> <executions> <execution> <id>sign-artifacts</id> <phase>verify</phase> <goals> <goal>sign</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <distributionManagement> <snapshotRepository> <id>ossrh</id> <url>https://oss.sonatype.org/content/repositories/snapshots/</url> </snapshotRepository> <repository> <id>ossrh</id> <url> https://oss.sonatype.org/service/local/staging/deploy/maven2/ </url> </repository> </distributionManagement> </project>

settings.xml

答案 3 :(得分:0)

我认为这个消息是错误的。 .asc不是必需的,我会发布一个错误,看看会发生什么。