Maven 2 Don';t从远程存储库下载工件

Maven 2 Don';t从远程存储库下载工件,maven-2,Maven 2,我想指定一些不应该从远程存储库下载的工件,即使它们存在。在maven2中有什么方法可以实现这一点吗?您是否尝试过脱机模式 mvn -o 我不清楚你到底在追求什么,所以这里有一些不同解释的答案: 如果工件是可传递的依赖项,则可以指定排除依赖项。请参阅的可传递依赖项排除部分 如果要确保未下载任何工件,可以将Maven设置为脱机模式,方法是将-o作为命令行开关传递,或将true添加到settings.xml 使用Maven repository manager,您可以为远程存储库设置代理存储库,并配

我想指定一些不应该从远程存储库下载的工件,即使它们存在。在maven2中有什么方法可以实现这一点吗?

您是否尝试过脱机模式

mvn -o

我不清楚你到底在追求什么,所以这里有一些不同解释的答案:

如果工件是可传递的依赖项,则可以指定排除依赖项。请参阅的可传递依赖项排除部分

如果要确保未下载任何工件,可以将Maven设置为脱机模式,方法是将-o作为命令行开关传递,或将true添加到settings.xml

使用Maven repository manager,您可以为远程存储库设置代理存储库,并配置代理以阻止某些工件。您可以通过添加一个与工件的groupId和artifactId匹配的“存储库目标”,然后为该目标创建Nexus用户没有的读取权限。任何连接到代理的用户都将无法获得该工件。有关配置目标的详细信息,请参阅


如果这些都不能满足您的需要,请详细说明您的问题。

不确定这是否是您所需要的,但您可以使用系统范围声明一个依赖项,它告诉Maven假定类路径中有一个特定的JAR(例如,java安装目录中包含的JAR)

从:

这个范围与提供的类似,只是您必须提供显式包含它的JAR。工件始终可用,并且不会在存储库中查找


顺便说一句,Maven基本上将本地存储库视为远程存储库的缓存,因此没有任何方法告诉它不要从远程repo获取特定的依赖项。

一个选项是安装文件的本地副本,并为副本指定一个不同的名称。对groupid名称进行预挂起的“local.”可以很容易地在pom文件中标识。If也会使切换出去变得容易

将其添加到本地回购协议中,如下所示:

mvn安装:安装文件-Durl=file://xmlthing.jar -Dinternal-Dfile=xmthing.jar-DgroupId=local.org.xmltool-DartifactId=xmlthing-Dversion=1.6.1-dpackage=jar

然后你将替换

 <dependency>
     <groupId>org.xmltool</groupId>
     <artifactId>xmlthing</artifactId>
     <version>1.6.1</version>
 </dependency>

org.xmltool
xmlthing
1.6.1


local.org.xmltool
xmlthing
1.6.1

我仍然希望maven从远程repo下载所有其他工件。我是说。。。正常的行为,除了一些特定的工件。这正是我想要的。谢谢请记住,这是不推荐的。我建议您在本地回购协议中安装一个不同名称的副本。预先挂起的“local”。将组和工件名称添加到pom文件中可以很容易地识别。对不起,我不知道这是不推荐的。与往常一样,maven文档并不好:(我有一个类似的问题。我的问题是,我有几个Maven工件,它们是我的公司创建的,并且只存在于我的本地存储库中。当我执行完整构建时,Maven会尝试从中央存储库重新下载工件。它总是会失败,并且会延迟我的构建过程。我如何告诉Maven永远不要这样做尝试从中央存储库下载私有工件。这是mgv试图解决的问题吗?
<dependency>
    <groupId>local.org.xmltool</groupId>
    <artifactId>xmlthing</artifactId>
    <version>1.6.1</version>
</dependency>