【问题标题】:Maven fails if I state dependency explicitly but works without it如果我明确声明依赖关系,Maven 会失败,但没有它就可以工作
【发布时间】:2017-12-31 12:32:45
【问题描述】:

我构建了一组相互依赖的项目(在本地和与 Jenkins 一起)。以前我添加了一个从 APE 到 EMM 的链接。一切正常。我的 pom.xml 中没有说明依赖项。这是存储库:

<repositories>
    <repository>
        <id>ModelMigration</id>
        <layout>p2</layout>
        <url>${repobase}/ModelMigration-Maven/${repopath}org.muml.emm.repository/target/repository</url>
    </repository>
</repositories>

如果我删除该存储库,构建将失败。

Missing requirement: org.muml.ape.migrator 1.0.0.qualifier requires 'bundle org.muml.emm 0.0.0' but it could not be found

如果我添加显式依赖项并为存储库启用快照,则构建失败。

    <dependencies>
      <dependency>
         <groupId>org.muml.emm.group</groupId>
         <artifactId>org.muml.emm</artifactId>
         <version>1.0.0-SNAPSHOT</version>
      </dependency>
   </dependencies>
   <repositories>
        <repository>
            <id>ModelMigration</id>
            <layout>p2</layout>
            <url>${repobase}/ModelMigration-Maven/${repopath}org.muml.emm.repository/target/repository</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>         

这是错误信息:

[ERROR] Failed to execute goal on project org.muml.ape: Could not resolve dependencies for project org.muml.ape.group:org.muml.ape:eclipse-plugin:1.0.0-SNAPSHOT: Could not find artifact org.muml.emm.group:org.muml.emm:jar:1.0.0-SNAPSHOT -> [Help 1]

这是缺少插件的 ID 和版本:

  <groupId>org.muml.emm.group</groupId>
  <artifactId>org.muml.emm</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <packaging>eclipse-plugin</packaging>

版本和 ID 似乎是正确的,jar 位于存储库中,它可以在没有显式依赖的情况下工作。我的快照依赖有什么问题?

【问题讨论】:

  • 您确定工件 ID 正确吗?
  • 我在 pom.xml 的 repo 路径中没有任何参数。我要么去我的内部仓库,要么去 Maven 中心。我想知道你为什么这样做。这对我来说看起来不对。
  • @DanielFigueroa 是的,你可以看到它在下面发布了缺少插件的 ID。
  • @duffymo 具体路径使用 Maven 配置文件设置。它们可用于在本地或在 Jenkins 上构建并相应地调整路径。有问题的插件是我们自己的,不在 maven 存储库中。
  • 我们也使用 Jenkins。不需要那些可变路径。我的本地机器和 Jenkins 都指向同一个存储库:首先是本地 .m2,然后是内部 Nexus,最后是 Maven Central。我的评论仍然有效。

标签: maven


【解决方案1】:

您提到的 Jar 似乎需要额外的依赖项。或者下载时jar有问题。

【讨论】:

    【解决方案2】:

    在没有明确提及的情况下构建通过的原因是所需的插件缓存在本地 maven 存储库中,无论是在本地还是在服务器上。该依赖不是 Maven 依赖,而是第谷依赖。因此,tycho 可以解决它,但是当 maven 尝试时,它失败了。它们的依赖机制是独立的,这可能会造成一些麻烦。

    进一步阅读:

    【讨论】:

      猜你喜欢
      • 2016-04-01
      • 2013-05-25
      • 1970-01-01
      • 1970-01-01
      • 2011-05-12
      • 1970-01-01
      • 2011-02-22
      • 1970-01-01
      • 2011-07-25
      相关资源
      最近更新 更多