我的网络驱动器上有一个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")
上述最佳做法是什么,或者我如何实现这一目标?
答案 0 :(得分:1)
根据你的描述,我脑子里想到了两件事。
第一: 停止使用网络驱动器。最好开始使用存储库管理器。 除此之外,网络驱动器的速度很慢。
第二
在Maven中,发行版是不可变的,这意味着如果您拥有1.0版本并部署到您的存储库,它将永远不会被更改。如果您需要对其进行更改,则必须使用其他版本,例如1.0.1等。
如果您正在开发正是导致问题的原因,您应该开始使用SNAPSHOT而不是版本:
目前,每个人都必须被告知去除人工制品 从他们的本地Maven存储库手动,它将指向它 重新下载“MyLib 1.0.0”的最新副本
这表明你正在反对Maven的概念。
第三。听起来你没有为你的构建使用持续集成。