首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven使用scp部署快照抛出NoSuchElementException

Maven使用scp部署快照抛出NoSuchElementException
EN

Stack Overflow用户
提问于 2017-08-03 20:05:52
回答 1查看 14K关注 0票数 1

我希望能够使用scp在nexus库上部署maven项目的快照。下面是我感兴趣的部分的pom.xml的当前配置:

代码语言:javascript
复制
<distributionManagement>
    <snapshotRepository>
      <id>gforge.inria.fr-snapshot</id>
      <name>inria-snapshots</name>
      <url>scp://scm.gforge.inria.fr/home/groups/spoon/htdocs/repositories/snapshots</url>
    </snapshotRepository>
    <site>
      <id>gforge.inria.fr-site</id>
      <name>inria</name>
      <url>scp://scm.gforge.inria.fr/home/groups/spoon/htdocs/mvnsites/spoon-core</url>
    </site>
  </distributionManagement>
  [...]
<extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
         <artifactId>wagon-ssh</artifactId>
      </extension>
    </extensions>
  </build>

there提供了整个pom.xml。

我们使用一对密钥对存储库进行身份验证,因此我在~/.m2/settings.xml中输入了以下内容:

代码语言:javascript
复制
<server>
  <id>gforge.inria.fr-snapshot</id>
  <username>XXXX</username>
  <privateKey>/path/to/the/private/key</privateKey>
</server>

当我启动mvn clean deploy时,我得到了以下错误:

代码语言:javascript
复制
[ERROR] Failed to execute goal org.sonatype.plugins:nexus-staging-maven-plugin:1.6.2:deploy (injected-nexus-deploy) on project spoon-core: Failed to deploy artifacts/metadata: Cannot access scp://scm.gforge.inria.fr/home/groups/spoon/htdocs/repositories/snapshots with type default using the available connector factories: BasicRepositoryConnectorFactory: Cannot access scp://scm.gforge.inria.fr/home/groups/spoon/htdocs/repositories/snapshots using the registered transporter factories: WagonTransporterFactory: java.util.NoSuchElementException
[ERROR] role: org.apache.maven.wagon.Wagon
[ERROR] roleHint: scp

执行with debugging选项显示以下堆栈跟踪:

代码语言:javascript
复制
java.util.NoSuchElementException
      role: org.apache.maven.wagon.Wagon
  roleHint: scp
org.codehaus.plexus.component.repository.exception.ComponentLookupException: java.util.NoSuchElementException
      role: org.apache.maven.wagon.Wagon
  roleHint: scp
    at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:267)
    at org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:255)
    at org.eclipse.aether.internal.transport.wagon.PlexusWagonProvider.lookup(PlexusWagonProvider.java:58)
    at org.eclipse.aether.transport.wagon.WagonTransporter.lookupWagon(WagonTransporter.java:271)
    at org.eclipse.aether.transport.wagon.WagonTransporter.<init>(WagonTransporter.java:115)
    at org.eclipse.aether.transport.wagon.WagonTransporterFactory.newInstance(WagonTransporterFactory.java:127)
    at org.eclipse.aether.internal.impl.DefaultTransporterProvider.newTransporter(DefaultTransporterProvider.java:110)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector.<init>(BasicRepositoryConnector.java:115)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory.newInstance(BasicRepositoryConnectorFactory.java:180)
    at org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider.newRepositoryConnector(DefaultRepositoryConnectorProvider.java:113)
    at org.eclipse.aether.internal.impl.DefaultDeployer.deploy(DefaultDeployer.java:265)

作为参考,我使用Maven 3.3.9和Java 8(我使用openjdk和oracle JDK进行了测试,结果相同)。

我知道我的pom.xml设置应该可以工作:它在虚拟机上工作了几个月。遗憾的是,我没有设置该虚拟机,并且我们最近在没有任何备份的情况下丢失了它。我没有任何关于这台机器上的java或maven版本的信息。

这个虚拟机是通过jenkins Job定期执行mvn deploy的,您可以在那里查看该作业的不同日志:https://ci.inria.fr/sos/job/Spoon-Snapshot-Deployer/。在7月28日之前,它运行良好,显示我的错误的日志是从8月2日开始的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-03 21:41:48

在您的pom之后,错误来自nexus-staging-maven-plugin使用的wagon-ssh扩展。

由于您不知道崩溃的VM可能使用哪些版本,您是否尝试过仅更新与nexus-staging-maven-plugin关联的wagon-ssh版本?例如,通过使用:

代码语言:javascript
复制
 <plugin>
    <groupId>org.sonatype.plugins</groupId>
    <artifactId>nexus-staging-maven-plugin</artifactId>
    <version>1.6.2</version>
    <extensions>true</extensions>
    <configuration>
      <serverId>ossrh</serverId>
      <nexusUrl>https://oss.sonatype.org/</nexusUrl>
      <autoReleaseAfterClose>true</autoReleaseAfterClose>
    </configuration>
    <dependencies>
      <dependency>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-ssh</artifactId>
        <version>2.12</version>
      </dependency>
    </dependencies>
  </plugin>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45483711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档