为什么我的 maven 项目没有从 nexus 中获取 jar

Why my maven project does not pick-up the jar from nexus

我在 Redhat,使用 jenkinsNexus Repository Manager OSS 2.12.0-01

我想要实现的是从nexus 下载所有的jar。 什么,我已经完成了。 安装成功nexus 2.12.0-01

这是我maven的内容setting.xml

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

    <mirrors>
        <mirror>
        <!--This sends everything else to /public -->
            <id>nexus</id>
            <mirrorOf>*</mirrorOf>
            <url>http://localhost:8081/nexus/content/groups/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> 

已成功在 nexus 中安装 Ojdbc5 的第 3 方 jar

我父 pom 的内容

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.abc</groupId>
  <artifactId>Test</artifactId>
   <packaging>pom</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <modules>
    <module>Project1</module>
    <module>Project2</module>
 </modules>
 
 <distributionManagement>
    <snapshotRepository>
        <id>my-snapshots</id>
        <url>http://localhost:8081/nexus/content/repositories/snapshots</url>
    </snapshotRepository>

    <repository>
        <id>my-releases</id>
        <url>http://localhost:8081/nexus/content/repositories/releases</url>
    </repository>

</distributionManagement>
</project>

在上面pom.xml中定义了两个项目。当我使用 jenkins 构建时,第一个项目成功构建。但第二个抛出错误。

Failed to execute goal on project project2: Could not resolve dependencies for project com.abc:project2:war:0.0.1-SNAPSHOT: Failure to find com.oracle:ojdbc5:jar:11.2.0.1 in http://localhost:8081/nexus/content/groups/public was cached in the local repository, resolution will not be reattempted until the update interval of nexus has elapsed or updates are forced -> [Help 1]

请看项目2 pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.abc</groupId>
  <artifactId>project2</artifactId>
    <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>Maven Webapp</name>
  <url>http://localhost:8081/nexus/content/repositories/releases</url>

 <distributionManagement>
  <repository>
    <id>thirdparty</id>
    <url>http://localhost:8081/nexus/content/repositories/thirdparty</url>
  </repository>
</distributionManagement>

  <dependencies>
        <!-- Spring ORM support -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>3.2.13.RELEASE</version>
        </dependency>

        <!-- Spring Batch -->
        <dependency>
            <groupId>org.springframework.batch</groupId>
            <artifactId>spring-batch-core</artifactId>
            <version>3.0.1.RELEASE</version>
        </dependency>

        <!-- ojdbc 5 dependency provide by nexus-->

        <dependency>
         <groupId>com.oracle</groupId>
         <artifactId>ojdbc5</artifactId>
         <version>11.2.0.1</version>
        </dependency>
    <!-- That is creating problem -->

请不要担心上面的问题 pom.xml 我已经从 pom 中删除了很多依赖项以减少问题的大小。 pom结构没问题

现在开始质疑。我是否错过了任何配置,为什么我得到

Failed to execute goal on project gsdataprocessor: Could not resolve dependencies for project com.globalss.batch:gsdataprocessor:war:0.0.1-SNAPSHOT: Failure to find com.oracle:ojdbc5:jar:11.2.0.1 in http://localhost:8081/nexus/content/groups/public was cached in the local repository, resolution will not be reattempted until the update interval of nexus has elapsed or updates are forced -> [Help 1]

这个错误。 请帮忙

更新 1:根据用户 sanigo 的建议,我已将第三方存储库添加到 Public 存储库组

更新 2:下面是显示 oracle ojdbc5 可用的屏幕截图是 public 存储库。

您的 http://localhost:8081/nexus/content/groups/public (Public Repository Group) is mirror of "*", so you should add http://localhost:8081/nexus/content/repositories/thirdparty(Thirdparty 存储库)到 [=14th=] 存储库组,您可以在 Public 存储库配置选项卡中执行此操作。然后你可以使用 mvn -U clean install.