当前位置: 首页 > 知识库问答 >
问题:

Maven不能再爱依赖

洪浩波
2023-03-14

我们有一个无法解决依赖关系的maven项目:

[错误]无法在项目利马-broor-mule上执行目标:无法解决项目代理的依赖关系:lima-broor-mule:mule:2.0:无法解决以下工件:com.sun.xml.messaging.saaj:saaj-impl:jar:1.3-osgi,mx4j:mx4j-jmx:jar:2.1.1-osgi,mx4j:mx4j-impl:jar:2.1.1-osgi,mx4j:mx4j-tools:jar:2.1.1-osgi,mx4j:mx4j-Remote:jar:2.1.1-osgi,com.yourkit:yjp-Controler-api-redist:jar:9.0.8,org.springmodules:spring-mosts-cache:jar:0.9,org.apache.geronimo.specs:geronimo-jms_1。1_spec:jar:1.1-osgi,Commons-codec:Commons-codec:jar:1.3-osgi,Commons-httpClient:Commons-httpClient:o-osgi, jaxen: jaxen: jar: 1.1.1-osgi,net.java.dev.stax-utils: stax-utils: jar: 20080702-osgi,net.sf.saxon: saxon-dom: jar:8.9.0.4-osgi,net.sf.saxon: saxon-xqj: jar:8.9.0.4,net.sf.saxon: saxon: jar:8.9.0.4-osgi,javax.activation: jar: 1.1-osgi,org.apache.geronimo.specs: geronimo-j2ee-connector_15_spec: jar: 1.1-osgi:找不到工件com.sun.xml.messaging.saaj: saaj-impl: jar: 1.3-osgi在all.repos(http://our.local/artifactory/all)

问题是我们没有在pom.xml中直接引用这些依赖项:

<dependencies>

  <!-- Project -->
  <dependency>
      <groupId>de.lineg.lima.broker</groupId>
      <artifactId>lima-broker-service</artifactId>
      <version>${project.version}</version>
      <scope>compile</scope>
  </dependency>

  <dependency>
      <groupId>net.sourceforge.jtds</groupId>
      <artifactId>jtds</artifactId>
      <version>1.2.4</version>
      <scope>compile</scope>
  </dependency>

  <!-- Transports used by the Mule config -->
  <dependency>
      <groupId>org.mule.modules</groupId>
      <artifactId>mule-module-cxf</artifactId>
      <version>3.2.0</version>
      <scope>provided</scope>
  </dependency>
  <dependency>
      <groupId>org.mule.transports</groupId>
      <artifactId>mule-transport-email</artifactId>
      <version>3.2.0</version>
      <scope>provided</scope>
  </dependency>
  <dependency>
      <groupId>org.mule.transports</groupId>
      <artifactId>mule-transport-vm</artifactId>
      <version>3.2.0</version>
      <scope>provided</scope>
  </dependency>
  <dependency>
      <groupId>org.mule.transports</groupId>
      <artifactId>mule-transport-jetty</artifactId>
      <version>3.2.0</version>
      <exclusions>
          <exclusion>
              <groupId>org.mortbay.jetty</groupId>
              <artifactId>servlet-api</artifactId>
          </exclusion>
          <exclusion>
              <groupId>org.apache.tomcat</groupId>
              <artifactId>jsp-api</artifactId>
          </exclusion>
          <exclusion>
              <groupId>org.apache.tomcat</groupId>
              <artifactId>jasper</artifactId>
          </exclusion>
          <exclusion>
              <groupId>org.apache.tomcat</groupId>
              <artifactId>jasper-el</artifactId>
          </exclusion>
      </exclusions>
  </dependency>

  <!-- Unit tests -->
  <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
  </dependency>
  <dependency>
      <groupId>org.mule.tests</groupId>
      <artifactId>mule-tests-functional</artifactId>
      <version>3.2.0</version>
      <scope>test</scope>
  </dependency>
  <dependency>
      <groupId>org.mule.modules</groupId>
      <artifactId>mule-module-client</artifactId>
      <version>3.2.0</version>
      <scope>test</scope>
  </dependency>
  <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>3.0.5.RELEASE</version>
      <scope>test</scope>
  </dependency>
  <dependency>
      <artifactId>ojdbc6</artifactId>
      <groupId>com.oracle</groupId>
      <scope>test</scope>
      <optional>true</optional>
  </dependency>
  <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-all</artifactId>
      <scope>test</scope>
  </dependency>
  <dependency>
      <groupId>org.easytesting</groupId>
      <artifactId>fest-assert</artifactId>
      <scope>test</scope>
  </dependency>
  <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <scope>test</scope>
  </dependency>

  <dependency>
      <groupId>com.h2database</groupId>
      <artifactId>h2</artifactId>
      <version>1.0.20061217</version>
      <scope>test</scope>
      <optional>true</optional>
  </dependency>
</dependencies>

我真的不知道如何解决这个问题。这些依赖项不在我们在artifactory中拥有的存储库中,我在任何在线存储库中都找不到。我不知道如何找出这些依赖项是如何被引用的,maven的依赖项插件并不能真正帮助我,因为在依赖项插件的任何输出出现之前,构建就失败了。

你知道我该怎么解决这个问题吗?我有没有办法找到这个问题的根源?

共有2个答案

司寇研
2023-03-14

大多数人工制品都可以在mvnrepository上找到。通用域名格式

<https://mvnrepository.com/artifact/com.sun.xml.messaging.saaj/saaj-impl>
<https://mvnrepository.com/artifact/mx4j/mx4j-tools/2.1.1>
<https://mvnrepository.com/artifact/com.sun.xml.messaging.saaj/saaj-impl/1.3.2>
<https://mvnrepository.com/artifact/commons-jxpath/commons-jxpath/1.3>
孙斌
2023-03-14

找不到工件com。太阳xml。信息。saaj:saaj impl:jar:1.3-osgi。回购协议(http://our.local/artifactory/all)

com。太阳xml。信息。saaj:saaj impl:jar:1.3-osgiartifact是一个sun库,其中一些在公共远程存储库中不可用(出于合法性考虑),此外它是一个osgi版本(这也不常见)
因此,您没有从公共Maven存储库中找到它也就不足为奇了

com。太阳xml。信息。saaj:saaj impl:jar:1.3-osgi依赖项在pom中不可见,因为它可能是一个可传递的依赖项,即由包含的依赖项拉动的依赖项
由于您没有显示生成的整个错误消息,我们无法确切地说是哪个依赖项导致了它。

要解决您的问题,您可以确定哪个依赖项提取了这个缺失的依赖项,并在包含此缺失依赖项的依赖项的问题跟踪中查找并添加(如果不存在)问题。也许,有一个解决方法,例如添加可以提供依赖项的Maven存储库。

无论如何,您可以尝试在web上找到可靠来源的库,下载它,并使用deploy maven插件的deploy:deploy file目标将其安装到您的工件库中

看看这个例子:https://maven.apache.org/guides/mini/guide-3rd-party-jars-remote.html

 类似资料:
  • 我们已经使用Grails4.0.0一年多了,从昨天开始,我们现在无法使用下面的构建配置下载依赖项。 } 看起来https://repo.grails.org/grails/core不再是正确的URL repo下载依赖项。有人知道正确的网址吗?或者如何解决这个问题?尝试过http://repo.grails.org/grails/plugins/,尝试过不同的东西,但没有成功。提前感谢您的帮助! 无

  • 如果你的项目有付费的开发者,一定要尽早设置钱可以购买什么东西的指导方针。这并不意味着你需要每天在邮件列表中说明两次来重申你的高尚和不腐的本性。你只需要在恰当的时机放松由钱导致的紧张。你不需要从一开始就假设存在这种紧张;你只需要说明有这种可能性。 一个完美的例子就是Subversion项目。CollabNet在2000年开始了Subversion,从一开始它便是项目主要的投资者,为多个开发者提供薪水

  • 我已经创建了一个构建。war文件的非常简单的Maven项目。Maven Version3.2.3,Java Version1.7.0_67。pom.xml文件就是这个要点。 如果我运行,那么项目构建良好。但是,如果首先下载所有具有和的依赖项,然后运行进行脱机构建,则会出现如下错误。 我从两种方式创建的。m2/repository文件夹不同,使用依赖插件创建的文件夹缺少许多文件,其中大多数与Plex

  • 我和我的朋友正在做一个Java maven项目,它的设置和我们从Git得到的项目是一样的。在我的设置中,Maven正确地导入了所有依赖项,但对于我的朋友,它找不到任何依赖项。 我们尝试过的事情: 右键单击project,单击maven并单击Reimport。 我们都可以上网,所以这也不是问题。而且,Maven在IntelliJ中设置为自动导入。

  • 由于某些原因,我们的应用程序的后端没有正确构建: 使用仍然有效不起作用,在构建quarkus-maven-plugin期间抛出以下错误消息:1.11.3.final:dev: 这种情况随着时间间隔的增加而持续。 我已经检查了SQL Docker容器是否脱机,但它按预期启动,并且可以使用。由于项目是按照我的同事使用相同的commit来构建的,所以我尝试了一个版本控制的新安装。无济于事。 同样的项目上

  • PS:请不要建议我在这里使用assembly或其他fat-jar插件,因为我有意复制依赖项jar用于Docker映像构建优化:一层用于依赖项,另一层用于jar,在任何依赖项改变之前,依赖项层总是被缓存: