在 Jenkins 中使用 nexus 解决工件

Resolve artifacts using nexus in Jenkins

我正在尝试在某些 VPS 运行 OpenShift Origin 上构建私有 Maven 工件。我已经设置了一个本地 nexus 服务 (http://nexus-ci.apps.intrinsic.world/content/groups/public/) 并且已经成功地(自动)使用另一个 Jenkins 实例来构建一些 jar 并将它们上传到那里。

现在我希望这个另一个单独的 Jenkins 实例(因此没有公共存储库)简单地使用 nexus 来查找它的所有 Maven 依赖项。为了实现这一点,我尝试向 Jenkins 的主配置提供以下 settings.xml 文档,但无济于事:

<?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">
  <profiles>
    <profile>
      <id>nexus</id>
      <activation>
        <property>
          <name>nexus</name>
          <value/>
        </property>
      </activation>
      <repositories>
        <repository>
          <id>nexus-repository</id>
          <url>http://nexus-ci.apps.intrinsic.world/content/groups/public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>nexus-plugin-repository</id>
          <url>http://nexus-ci.apps.intrinsic.world/content/groups/public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>nexus</activeProfile>
  </activeProfiles>
</settings>

我错过了什么?

如果您希望通过您的 Nexus 加载所有 依赖项,您应该使用镜像定义而不是额外的存储库:

<mirror>
  <id>nexus</id>
  <mirrorOf>*</mirrorOf>
  <name>Nexus</name>
  <url>http://nexus-ci.apps.intrinsic.world/content/groups/public/</url>
</mirror>

你应该使用一个组,覆盖中心并配置镜像。带有示例的详细信息是 in the documentation.

您可能还想看看使用配置文件提供程序插件。我在 Tips from the Trenches video series.

中录制了一些关于 jenkins 设置的视频