在Maven中,如何根据每个项目在本地和内部网存储库之间切换?

在Maven中,如何根据每个项目在本地和内部网存储库之间切换?,maven,Maven,我一直在项目中使用Maven,这些项目定期连接到外部的、基于内部网络的存储库。我有时想做一些一次性的工作,我不想让他们连接到我的内部网——严格地说,就是我的本地存储库 在我的settings.xml文件中,我为这些项目添加了第二个配置文件,这样我可以在构建期间指定该配置文件,但我不知道如何告诉它我只想在/path/to/my/local/repo中搜索本地存储库 在这里,二级配置文件是正确的方法吗?还是应该在脱机(-o)模式下运行Maven并添加新镜像,但不知道如何在镜像声明中设置路径而不是ur

我一直在项目中使用Maven,这些项目定期连接到外部的、基于内部网络的存储库。我有时想做一些一次性的工作,我不想让他们连接到我的内部网——严格地说,就是我的本地存储库

在我的
settings.xml
文件中,我为这些项目添加了第二个配置文件,这样我可以在构建期间指定该配置文件,但我不知道如何告诉它我只想在
/path/to/my/local/repo
中搜索本地存储库


在这里,二级配置文件是正确的方法吗?还是应该在脱机(
-o
)模式下运行Maven并添加新镜像,但不知道如何在镜像声明中设置路径而不是url。

我保留了两份maven。其中一个例子是conf/settings.xml为我们的公司Nexus服务器提供了一个示例。另一方面,情况并非如此。您可以根据需要扩展此技术,maven安装树不是很大。

感谢@andrew_logvinov指出,只需为您的
mvn
请求指定一个“
-o
”就可以相对容易地做到这一点。在settings.xml文件中不需要任何本地镜像设置或配置文件

如果需要将文件安装到本地存储库中,请执行以下操作:

mvn install:install-file -DgroupId=com.something -DartifactId=theArtifact -Dversion=1.2.3 -Dfile=/local/path/to/the/file/some.pom -Dpackaging=pom

最好的分离方法是为不同的使用案例(回购/无回购、公司1用户、公司2用户、github上的私人黑客攻击等)使用单独的settings.xml


然后,您可以切换设置文件,或者使用命令行标志指定设置文件-s。

如何指定要在项目上使用的maven?我键入不同的命令。我的shell启动中有指定的别名。如果您指的是父级的不同子项目,则不能。我没有领会,
-o
命令行选项有什么问题?这是强制maven只使用本地存储库的最简单和最直接的方法。我假设使用
-o
它需要某种镜像/路径设置?如果不是,那么它听起来确实是最好的解决方案。如果您的本地存储库中没有构建所需的内容,则构建将失败。就是这样。我现在明白了——它失败了,但是查看本地而不是内部网,这很好。我假设类似于
mvn安装:安装文件-DgroupId=com.something-DartifactId=theArtifact-Dversion=1.2.3
。。。你能带我去吗?如果你想把你的评论放在一个答案中,我会接受的。好吧,这取决于你在离线时想要达到什么。你能说得更具体些吗?另外,我认为我的评论不值得回答,因为你的问题中有答案=)