我无法发布使用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/