【问题标题】:Maven error on dependency: missing artifact依赖项的 Maven 错误:缺少工件
【发布时间】:2012-02-28 23:31:47
【问题描述】:

我昨天问了这个问题,结果证明是 Maven 问题。虽然我能够找到一种解决方法(使用 Geronimo 而不是 Java JMS),但我无法弄清楚为什么 Java JMS 解决方案不起作用。

我不喜欢重复问题,但我不认为这是一个骗局,因为它是一个完全不同的原始问题。

所以,我试图让 JMS 与我的应用程序一起工作,以便将消息推送到本地队列。在我的 Maven pom.xml 中,我添加了以下依赖声明:

<dependencies>
    <dependency>
        <groupId>javax.jms</groupId>
        <artifactId>jms</artifactId>
        <version>1.1</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

然后立即得到一个(红色)突出显示的错误(使用 Eclipse)说明:

缺少工件 javax.jms:jms:jar:1.1

当我用另一个 JMS API(例如 Geronimo)替换它时,错误就消失了。这是参考(Java)JMS 依赖项的问题吗?还是我的沙盒中配置有问题?

【问题讨论】:

  • 突出显示的错误?我猜这意味着你使用 Eclipse?你在控制台上试过吗?或Project's context menu &gt; Maven &gt; Update Dependencies.
  • 尝试删除scope 部分。

标签: java maven dependencies


【解决方案1】:

您可以在此处的 maven repo 浏览器http://mvnrepository.com/artifact/javax.jms/jms 中看到工件的大小为 0 字节。似乎该工件存在一些问题或特殊政策。

【讨论】:

    【解决方案2】:

    jms 1.1 jar 在默认 maven 存储库中不可用 - 您需要添加对其他公共存储库之一的引用(例如 jboss 之一)

    这个答案有详细信息 https://stackoverflow.com/a/5272660/672586

    【讨论】:

      【解决方案3】:

      该错误可能是由于 log4j 传递依赖关系。您可以排除下面给出的此类依赖项。

      <dependency>
         <groupId>log4j</groupId>
         <artifactId>log4j</artifactId>
         <version>1.2.17</version>
         <exclusions>
          <exclusion>
              <artifactId>jms</artifactId>
              <groupId>javax.jms</groupId>
          </exclusion>
          <exclusion>
              <artifactId>jmxri</artifactId>
              <groupId>com.sun.jmx</groupId>
          </exclusion>
          <exclusion>
              <artifactId>jmxtools</artifactId>
              <groupId>com.sun.jdmk</groupId>
              </exclusion>
          </exclusions>
      </dependency>
      

      【讨论】:

        猜你喜欢
        • 2012-12-15
        • 1970-01-01
        • 1970-01-01
        • 2019-05-25
        • 2019-04-09
        • 1970-01-01
        • 2014-06-10
        • 1970-01-01
        • 2020-12-09
        相关资源
        最近更新 更多