1

我正在尝试为我的公司设置一个 Maven Nexus 服务器,以共享我们内部构建的常见 JAR。我使用我的工作站(称为工作站 1)来构建通用 JAR,然后将mvn deploy其部署到 Nexus Maven 服务器。然后我将它添加到需要它的项目的 pom.xml 的依赖项中,然后我做了我的mvn package,一切都很好。

现在,如果我更改通用代码并mvn deploy使用相同的版本号运行,然后mvn package在第二个项目上重新运行,它将看到更改并且一切都很好。

现在让我们移动到工作站 2。如果我mvn package在需要通用代码的项目上做一个,一切都很好。但是,如果通用代码发生更改并且我重新运行mvn package命令,它看起来像是要进入工作站上的本地存储库并使用该版本,而不是 Nexus 中的新版本!

所以我的问题如下......

  1. 是否mvn deploy在连接存储库之前在本地存储库中保存副本?
  2. 如何让项目在工作站上的本地存储库之前检查 nexus 存储库以获取最新文件?

该代码是一个接受快照,因此我希望每次用户尝试访问它时都对其进行更新。

4

3 回答 3

1

1) maven 咨询本地存储库,只有错过它才使用在线存储库 (nexus)

2) 我不知道

无论如何:(SNAPSHOTS 除外)您不应该修改已发布的人工制品而不更新其版本!

于 2012-10-05T17:48:10.160 回答
1

你可以运行mvn -U package。使用 -U Maven 将始终检查存储库(在您的情况下为 Nexus)以获取更新的 SNAPSHOT 版本的依赖项。

您还可以将配置添加到您的 settings.xml 以始终查找新版本的依赖项。请参阅设置参考,配置名为<updatePolicy>always</updatePolicy>

于 2012-10-05T18:20:25.863 回答
1

我明白了..我必须始终在我的 settings.xml 中添加快照设置

于 2012-10-05T18:20:34.873 回答