如何让我的本地Maven覆盖在我的网络存储库中覆盖的现有人工制品

时间:2014-12-10 06:23:28

标签: maven maven-2 maven-3

我的网络驱动器上有一个Maven存储库文件夹,其中包含我们使用的所有文物。

办公室中的每个人都在其本地Maven设置上使用标准的settings.xml文件,该文件包含该网络驱动器作为远程存储库的位置。

通过这种方式,我们保持网络Maven存储库文件夹的更新,以便每个人的计算机上的本地环境只需从该中央存储库文件夹下载,这样就无法为每个人重新下载互联网。

我们正在忙着开发一个新的库,让我们说" MyLib 1.0.0"。我们将其安装到中央网络maven文件夹存储库中,并且每个人的本地Maven项目都在其项目中使用该依赖项。但是现在,我们尚未正式发布" MyLib 1.0.0",它仍在进行中,所以一旦我们进一步更新它,我们就会覆盖" MyLib 1.0.0"中央仓库中的人工制品。

问题是,因为我们所有的本地Maven已经将人工制品下载到他们当地的Maven存储库中,所以他们不会重新下载它。它已经存在。我不想增加" MyLib"但是因为它不是正式版本,我也不希望每个人都必须在他们的pom.xml文件中更改其依赖版本。我只是想替换" MyLib 1.0.0"文件并让所有人都在本地Maven的下载并自动覆盖他们的本地副本。 (目前,每个人都必须被告知要手动删除当地Maven存储库中的人工制品,以便重新下载最新版本的" MyLib 1.0.0")

上述最佳做法是什么,或者我如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

根据你的描述,我脑子里想到了两件事。

第一:   停止使用网络驱动器。最好开始使用存储库管理器。   除此之外,网络驱动器的速度很慢。

第二

在Maven中,发行版是不可变的,这意味着如果您拥有1.0版本并部署到您的存储库,它将永远不会被更改。如果您需要对其进行更改,则必须使用其他版本,例如1.0.1等。

如果您正在开发正是导致问题的原因,您应该开始使用SNAPSHOT而不是版本:

  

目前,每个人都必须被告知去除人工制品   从他们的本地Maven存储库手动,它将指向它   重新下载“MyLib 1.0.0”的最新副本

这表明你正在反对Maven的概念。

第三。听起来你没有为你的构建使用持续集成。