多个存储库中存在快照依赖项

时间:2014-02-24 12:11:25

标签: java maven eclipse-plugin tycho

我面临一个独特的问题 -

我有一个插件依赖项,存在于多个存储库中。版本号与快照限定符相同(时间戳不同)。

有没有办法可以强制Maven / Tycho更喜欢特定存储库中的快照?

编辑:他们是为Eclipse PDE Build

创建的P2插件存储库

4 个答案:

答案 0 :(得分:1)

您可以在目标平台上指定过滤器,以删除除一个版本之外的所有版本:

<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>

答案 1 :(得分:1)

列表中的XML元素与Maven基于FIFO。所以,如果你在hte非常顶部(在其他的之前)定义你的存储库,Maven最终应该从那里解析它。

如果您正在使用工件存储库管理器,则可以定义路由规则。

答案 2 :(得分:0)

我想你可以创建一个配置文件并添加你想要的存储库作为唯一的存储库。

答案 3 :(得分:0)

您可以排除所有可传递的快照deps并明确添加依赖项:

<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>