如何配置 pom.xml 文件以使用 Nexus 存储库管理器

2024-02-11

我在用Redhat, java 1.7, maven 3.2.5, jenkins 1.6,git version 2.0.5 and nexus-2.12.0-01

我创建了一个本地Nexus Repository为了我的内在发展。 现在我想做的是,建立maven项目使用jenkins with Nexus Repository Manger Oss。 我无需构建我的项目Nexus Repository Manger Oss.

注意:我正在使用父级pom因为我必须分项目。

以下是我遵循的步骤.

  • 已安装Nexus Repository Manger Oss。它已启动并正在运行
    这是屏幕截图。

  • 在 nexus 存储库中安装了 ojdbc5 jar

  • 对.m2文件夹的setting.xml文件进行了必要的更改

这里的内容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>

    <activeProfiles>
        <!--make the profile active all the time -->
        <activeProfile>nexus</activeProfile>
    </activeProfiles>

    <profiles>
        <profile>
            <id>nexus</id>
          <repositories>
          <repository>
          <id>central</id>
          <url>http://maven.apache.org</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
          </repository>
            </repositories>

            <pluginRepositories>
                <pluginRepository>
                    <id>central</id>
                    <url>http://maven.apache.org</url>
                    <releases><enabled>true</enabled></releases>
                    <snapshots><enabled>true</enabled></snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>

    <servers>
      <server>
       <id>releases</id>
       <username>deployment</username>
       <password>deployment123</password>
      </server>
      <server>
        <id>snapshots</id>
        <username>deployment</username>
        <password>deployment123</password>
      </server>
    </servers>

</settings> 
  • 在我的中添加了 Nexus 存储库的详细信息pom.xml

parent pom.xml content

<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>parent</groupId>
  <artifactId>A</artifactId>
  <packaging>pom</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>Maven Webapp</name>
  <!--url>http://maven.apache.org</url-->

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

  <dependencies>
    <dependency>
      <groupId>com.oracle</groupId>
      <artifactId>ojdbc5</artifactId>
      <version>11.2.0.1</version>
    </dependency>
  </dependencies>

  <modules>
    <module>subModule1</module>
    <module>subModule2</module>
  </modules>
</project>

SubModule1的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.a</groupId>
  <artifactId>a</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>Maven Webapp</name>

  <distributionManagement>
    <repository>
      <id>releases</id>
      <!-- CHANGE HERE by your team nexus server -->
      <url>http://localhost:8081/nexus/content/repositories/thirdparty/</url>
    </repository>
    <snapshotRepository>
      <id>snapshots</id>
      <!-- CHANGE HERE by your team nexus server -->
      <url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
  </distributionManagement>

  <dependencies>
    // dependecies are defined here
  <dependencies>

In subModule1 and subModule2我已经添加了distributionManagement部分。

但是当我构建项目时,出现以下错误。

[错误] 无法在项目子模块 1 上执行目标:无法 解决项目 submodule1:war:1.0-SNAPSHOT: 失败的依赖关系 找到 com.oracle:ojdbc5:jar:11.2.0.1 中https://repo.maven.apache.org/maven2 https://repo.maven.apache.org/maven2已缓存在本地 存储库,在更新之前不会重新尝试解析 Central 的间隔已过或强制更新 -> [帮助 1]

我了解该错误是由com.oracle:ojdbc5:jar:11.2.0.1jar 依赖关系无法解析。

但我很惊讶为什么它没有从我的本地关系存储库中获取它。

我是否错过了任何配置,或者我以错误的方式进行了配置?

如何为我的项目使用本地 Nexus 存储库?


在 settings.xml 中,通常在 ~/.m2/ 目录中,您需要指定本地 Nexus。默认情况下,您只能获得 Maven Central。

 <profile>
        <id>local</id>
        <repositories>
            <repository>
                <id>nexus</id>
                <name>libs-release</name>
                <url>http://url to your local Nexus/artifactory/libs-release</url>
            </repository>
        </repositories>
 </profile>

您可以根据需要添加任意数量的存储库元素。

确保正确的配置文件处于活动状态,位于 settings.xml 的底部

  <activeProfiles>
    <activeProfile>local</activeProfile>
  </activeProfiles>

此外,您的 ~/.m2/repository/com/oracle ... 文件夹中还会留下一个存根。我总是执行 rm -r ~/.m2/repository/com/oracle 来强制它从远程存储库下载。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何配置 pom.xml 文件以使用 Nexus 存储库管理器 的相关文章

随机推荐