【问题标题】:Snapshot dependency present in multiple repositories多个存储库中存在快照依赖项
【发布时间】:2014-02-24 12:11:25
【问题描述】:

我面临一个独特的问题 -

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

有没有一种方法可以强制 Maven/Tycho 选择来自特定存储库的快照?

编辑:它们是为 Eclipse PDE Build 创建的 P2 插件存储库

【问题讨论】:

  • 作为依赖的插件?不是吗?
  • @khmarbaise :这是行家第谷。它是一个 Eclipse 插件。它是一个 P2 存储库。编辑原始问题以更清晰。
  • 您能简单地省略包含冗余内容的存储库吗?

标签: java maven eclipse-plugin tycho


【解决方案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>

【讨论】:

    【解决方案2】:

    列表中的 XML 元素在 Maven 中是基于 FIFO 的。因此,如果您在最顶部(在其他存储库之前)定义您的存储库,Maven 应该最终从那里解决它。

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        您可以排除所有可传递的快照部门并显式添加依赖项:

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

        【讨论】:

        • 它不是传递依赖。它只存在于我需要的两个存储库中。我只需要告诉 maven 更喜欢一个存储库而不是另一个存储库。
        • 啊好吧...误解 ;) 正如 SebastianH 指出的那样,您可以创建个人资料。您还可以在定义存储库的位置创建父 pom。你也可以在那里定义插件,但如果从父级继承的每个模块都应该使用这个插件,你应该这样做。
        猜你喜欢
        • 2013-09-17
        • 2014-03-27
        • 2014-12-29
        • 1970-01-01
        • 1970-01-01
        • 2012-10-22
        • 2012-01-10
        • 2010-12-13
        • 1970-01-01
        相关资源
        最近更新 更多