我可能会遗漏一些非常明显的东西,但无论如何我都需要澄清一些。我即将开始使用maven和archiva进行开发。我将两个服务器+设置添加到settings.xml,并将distributionManagement
标签添加到我要部署的maven POM中。
我在POM中引用了我的内部快照存储库和内部发布存储库。是否有一个特定的maven命令或选项,它指定部署为SNAPSHOT,而不是两个repos?或者,如果我进行部署,它会自动将一个副本推送到每个仓库吗?
有人可以澄清这个吗?'
答案 0 :(得分:80)
如果您的project.version
包含SNAPSHOT
(f.e。,1.2-SNAPSHOT)并执行mvn deploy
,则工件将部署到您的快照存储库中。如果没有(f.e.,1.2) - 它们将被部署到您的发布存储库。
答案 1 :(得分:11)
您可以执行mvn deploy
。
如果您的POM版本包含SNAPSHOT
作为后缀,它将部署到distributionManagement.snapshotRepository
下配置的存储库中。
如果您的POM不包含SNAPSHOT
后缀,它将部署到distributionManagement.repository
下配置的存储库中。
但是,我建议您使用maven-release-plugin
来管理版本控制和部署。在简历中运行mvn -B release:clean release:prepare release:perform
:
SNAPSHOT
已从版本中移除(例如2.1-SNAPSHOT
- > 2.1
); 2.1
); SNAPSHOT
(例如2.2-SNAPSHOT
)。答案 2 :(得分:1)
对我来说,在SNAPSHOT
中加上后缀${project.version}
是不够的。我必须在其前面加上一个破折号:-SNAPSHOT
,以便maven将其部署在本地快照存储库中。