Java 多个存储库中存在快照依赖关系
我面临着一个独特的问题- 我有一个插件依赖,它存在于多个存储库中。版本号与快照限定符相同(时间戳不同) 我有没有办法强迫Maven/Tycho选择特定存储库中的快照Java 多个存储库中存在快照依赖关系,java,maven,eclipse-plugin,tycho,Java,Maven,Eclipse Plugin,Tycho,我面临着一个独特的问题- 我有一个插件依赖,它存在于多个存储库中。版本号与快照限定符相同(时间戳不同) 我有没有办法强迫Maven/Tycho选择特定存储库中的快照 编辑:它们是为Eclipse PDE构建创建的P2插件存储库我想您可以创建一个配置文件并添加您想要的存储库作为唯一的存储库。您可以排除所有可传递的快照Dep并显式添加依赖项: <dependency> <groupId>com.sun.something</groupId> <
编辑:它们是为Eclipse PDE构建创建的P2插件存储库我想您可以创建一个配置文件并添加您想要的存储库作为唯一的存储库。您可以排除所有可传递的快照Dep并显式添加依赖项:
<dependency>
<groupId>com.sun.something</groupId>
<artifactId>something</artifactId>
<version>version</version>
<exclusions>
<exclusion>
<artifactId>transitive</artifactId>
<groupId>com.sun.somethingelse</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.sun.somethingelse</groupId>
<artifactId>transitive</artifactId>
<version>version</version>
</dependency>
什么
某物
版本
及物的
com.sun.somethingelse
com.sun.somethingelse
及物的
版本
您可以在目标平台上指定一个过滤器,以删除除一个版本以外的所有版本:
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho-version}</version>
<configuration>
<filters>
<filter>
<type>eclipse-plugin</type>
<id>id.of.dependency</id>
<restrictTo>
<version>1.2.3.2014020241355</version>
</restrictTo>
</filter>
</filters>
</configuration>
<plugin>
org.eclipse.tycho
目标平台配置
${tycho版本}
eclipse插件
依赖id
1.2.3.2014020241355
列表中的XML元素使用Maven以FIFO为基础。因此,如果您在最顶层(在其他存储库之前)定义了您的存储库,Maven应该从那里解决它
如果您使用的是工件库管理器,您可以定义路由规则。插件作为依赖项?不是吗?@khmarbaise:是maven tycho。它是一个Eclipse插件。它是一个P2存储库。编辑原始问题以使其更清晰。您是否可以简单地省略包含冗余内容的存储库?它不是一个可传递的依赖项。它只存在于我需要的两个存储库中。我只需要告诉maven更喜欢一个存储库而不是另一个正如塞巴斯蒂安所指出的,您可以创建一个配置文件。您还可以创建一个父pom,在其中定义存储库。您也可以在那里定义插件,但是如果从父模块继承的每个模块都应该使用该插件,您就应该这样做。