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

Jenkins无法从本地存储库中找到maven依赖项

何聪
2023-03-14

我已通过mvn install: install-file将jar文件添加到我的本地maven存储库中,该文件在我的本地机器上运行良好。这是我的pom中的依赖项:

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc6</artifactId>
    <version>${oracle.connector.version}</version>
</dependency>

在我的机器上运行mvn清洁安装时,一切正常。现在我有一个本地jenkins实例正在运行(在Windows机器上),它应该构建我的项目。构建遇到错误,jenkins说:

在mirror1(http://repo.maven.apache.org/maven2)中找不到工件com.oracle: ojdbc6: jar: 11.2.0-

<?xml version="1.0" encoding="UTF-8" ?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=
"http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/
settings-1.0.0.xsd">
    <localRepository>${user.home}/.m2/repository</localRepository>
    <servers>
        <server>
            <id>nexusReleases</id>
            <username>deployment</username>
            <password>deployment123</password>
        </server>
        <server>
            <id>nexusSnapshots</id>
            <username>deployment</username>
            <password>deployment123</password>
        </server>
    </servers>
    <mirrors>
    <mirror>
        <id>mirror1</id>
        <mirrorOf>*</mirrorOf>
        <name>Maven2 official repo</name>
        <url>http://repo.maven.apache.org/maven2</url>
    </mirror>
    <mirror>
      <!--This sends everything else to /public -->
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <url>http://localhost:8081/repository/maven-public/</url>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
      <id>nexus</id>
      <!--Enable snapshots for the built in central repo to direct -->
      <!--all requests to nexus via the mirror -->
      <repositories>
        <repository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
      </repositories>
     <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <activeProfiles>
    <!--make the profile active all the time -->
    <activeProfile>nexus</activeProfile>
  </activeProfiles>
</settings>

当然,我已经仔细检查了.m2中的存储库目录。ojdbc6.jar就在那里。

那么我的设置出了什么问题?


共有3个答案

祁建明
2023-03-14

使用以下依赖项:

<dependency>
    <groupId>com.oracle.ojdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>19.3.0.0</version>
</dependency>
濮阳立果
2023-03-14

我对ojdbc8.jar也有同样的问题。由于pom.xml中存在此依赖项,生成失败。

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>19.3</version>
</dependency>

我将ojdbc8.jar复制到Jenkins maven存储库。将其重命名为ojdbc8-19.3.jar我的构建成功了。

也许这对其他人有帮助。

谢学名
2023-03-14

您可能需要检查Jenkins使用什么作为其本地存储库。

转到Jenkins verwalten(管理Jenkins)

在Maven Projekt Konfiguration(Maven项目配置)下,应该有一个用于Jenkins的.m2存储库所在的设置。

如果这不是您在本地使用的同一个存储库,那么可以解释您的错误。

编辑:每个作业还可以选择是否使用“私有存储库”。该存储库将特定于该作业,并且不会与任何其他人共享工件。

 类似资料:
  • 我对maven是新手,在将pom.xml中定义的依赖项下载到本地存储库时遇到了问题。正确下载pom.xml中定义的所有其他依赖项。此外,跨多个项目的其他依赖关系也运行良好。我使用的是maven 3.5.2和aws sdk 1.11.86 导致问题的依赖项是定义为的aws红移驱动程序- Maven存储库- 我的本地回购协议有以下内容- 我已经删除了本地文件。上次更新的文件,但无法解决此问题<有什么想

  • 我在本地发布了一个依赖项。依赖项位于路径上 我认为这是Windows上的默认路径。 现在,在另一个项目中,我尝试使用这个库。我的<code>构建。gradle如下所示(以及其他依赖项) 我收到构建错误,某些类不存在等... 这不足以从本地存储库中识别依赖项吗? 我也为其他依赖项使用远程存储库,但工件名称版本是唯一的(com.mycompany:mylibrary:1.0)。我希望从本地存储库中找到

  • Maven错误: 未能对项目XXXXXX执行目标:无法解析项目XXXXXX:XXXXXX:0的依赖项。1-快照:找不到com。神谕ucm:idcserver:jar:11.1.1.8英寸[http://internal-proxy:8080/nexus-2.6.4/content/groups/XXXXXX]缓存在本地存储库中,在内部代理的更新间隔结束或强制更新之前,不会重新尝试解析。 我已经确认

  • 我在获取 gradle 时遇到了麻烦,无法找到我放入私有 nexus 存储库中的依赖项。依赖性在maven中,但我似乎也无法让它在那里找到它。我确实把它放进了我的nexus存储库,位置 http://nexus.hq.chris.com/content/repositories/emoji4j/ 建筑格拉德尔·斯尼佩特 有谁知道我如何让 gradle 在 http://nexus.hq.chris

  • 我所处的环境是,可以将同名jar文件的多个版本发布到本地Nexus安装。这些jar文件始终命名为XYZ-SNAPSHOT。罐子我们的持续集成系统需要始终获取最新版本,因此我们的自动构建当前包含以下内容,以消除持续集成机器上的完整本地回购: mvn依赖项:清除本地存储库 这将强制在每个构建上下载所有依赖项,这将花费很长时间。是否有某种方法可以将“includes”标志与通配符一起使用。我可以这样假设

  • 我制作了一个EJB3.0和一个客户机。这是我的EJB的pom: 但是无法检索jboss-ejb3-ext-api及其实现:/eclipse告诉我: 容器“Maven Dependencies”引用不存在的库“C:\usr\local\m2-repository\org\jboss\ejb3\jboss-ejb3-ext-api\1.0.0\jboss-ejb3-ext-api-1.0.0.jar”