我无法发布使用maven连接的 Artifact 的快照版本。我的 Artifact 的版本为1.0.0-SNAPSHOT。

我可以毫无问题地执行mvn clean install。但是,当我尝试使用mvn deploy进行部署时,出现以下错误:

Return code is: 400, ReasonPhrase: Repository version policy: RELEASE does not allow version: 1.0.0-20161019.214318-1. -> [Help 1]

根据我的发现,maven3在要部署的 Artifact 上添加了时间戳而不是SNAPSHOT后缀。 maven3不支持maven的<uniqueVersion>标记。使用mvn deploy命令部署这些 Artifact 需要采取什么方法。

更新 :
pom.xml
   <distributionManagement>
    <repository>
      <id>my-nexus-snapshots</id>
      <name>Internal Snapshot Releases</name>
      <url>http://localhost:9999/repository/maven-snapshots/</url>
    </repository>
    <snapshotRepository>
      <id>my-nexus-releases</id>
      <name>Internal Releases</name>
      <url>http://localhost:9999/repository/maven-releases/</url>
    </snapshotRepository>
  </distributionManagement>

settings.xml
    <server>
        <id>my-nexus-snapshots</id>
        <username>user</username>
        <password>user123</password>
    </server>
    <server>
        <id>my-nexus-releases</id>
        <username>user</username>
        <password>user123</password>
    </server>

最佳答案

通常,您的关系具有独立的存储库“快照”和“发行版”。 SNAPSHOT版本被部署到前者,非SNAPSHOT版本被部署到前者。为了进行部署,这些存储库必须由您指定。您可以通过将distributionManagement部分添加到pom来实现。您可以在此处为两个目标定义特定的目标。

<distributionManagement>
  <repository>
    <id>releases</id>
    <name>releases</name>
    <url>http://somerepo:8081/nexus/content/repositories/releases/</url>
  </repository>
  <snapshotRepository>
    <id>snapshots</id>
    <name>snapshots</name>
    <url>http://somerepo:8081/nexus/content/repositories/snapshots/</url>
  </snapshotRepository>
</distributionManagement>

关于maven - 使用Maven 3.0.5将快照发布到nexus,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40142162/

10-11 12:18