2

私たちの部門のリポジトリではない Nexus インスタンスによって提供される jar に依存しています。Nexus を更新して他のリポジトリをミラーリングしたり、(共有) を変更したりしたくないsettings.xmlので、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.company.department</groupId>
    <artifactId>simple-sample-app</artifactId>
    <packaging>war</packaging>
    <version>0.1</version>
    <name>simple-sample-app Maven Webapp</name>
    <repositories>
        <repository>
            <id>other-department</id>
            <name>other-department.company.com</name>
            <url>http://other-department.company.com/content/repositories/releases/</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
    ...
</project>

<id>other-department</id>ただし、リポジトリがチェックされていないため、mvn ビルドは失敗しています。何が正しく設定されていませんか?

編集:これが私のsettings.xmlです

<settings>
    <offline>false</offline>
    <proxies>
        <proxy>
            <active>false</active>
            <host>internal-proxy.company.com</host>
            <port>8080</port>
            <nonProxyHosts>company.com</nonProxyHosts>
        </proxy>
    </proxies>
    <servers>
        <server>
            <id>releases</id>
            <username>deployment</username>
            <password>deploy</password>
        </server>
        <server>
            <id>snapshots</id>
            <username>deployment</username>
            <password>deploy</password>
        </server>
        <server>
            <id>site</id>
            <username>sitemanager</username>
            <password>sitemanager</password>
        </server>
    </servers>
    <mirrors>
        <mirror>
            <id>department-nexus-public-snapshots</id>
            <url>http://nexus.department.company.com/nexus/content/groups/public-snapshots</url>
            <mirrorOf>public-snapshots</mirrorOf>
        </mirror>
        <mirror>
            <id>department-nexus-public</id>
            <url>http://nexus.department.company.com/nexus/content/groups/public</url>
            <mirrorOf>external:*</mirrorOf>
        </mirror>
    </mirrors>

    <profiles>
        <profile>
            <id>development</id>
            <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>

        <profile>
            <id>public-snapshots</id>
            <repositories>
                <repository>
                    <id>public-snapshots</id>
                    <url>http://public-snapshots</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>public-snapshots</id>
                    <url>http://public-snapshots</url>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>

    <activeProfiles>
        <activeProfile>development</activeProfile>
        <activeProfile>public-snapshots</activeProfile>
    </activeProfiles>
</settings>
4

1 に答える 1

1

StefanHと@khmarbaiseに感謝します。問題はミラーエントリにありました。

私の古いsettings.xmlには、次のミラーエントリがありました。

<settings>
  ...
  <mirrors>
    <mirror>
      <id>department-nexus-public-snapshots</id>
      <url>http://nexus.department.company.com/nexus/content/groups/public-snapshots</url>
      <mirrorOf>public-snapshots</mirrorOf>
    </mirror>
    <mirror>
      <id>department-nexus-public</id>
      <url>http://nexus.department.company.com/nexus/content/groups/public</url>
      <mirrorOf>external:*</mirrorOf>
    </mirror>
  </mirrors>
  ...
</settings>

問題は<mirrorOf>external:*</mirrorOf>、POMのリポジトリを開始して効果的にブロックしていたことでした。修正方法は次のとおりです。

<settings>
  ...
  <mirrors>
    <mirror>
      <id>department-nexus-public-snapshots</id>
      <url>http://nexus.department.company.com/nexus/content/groups/public-snapshots</url>
      <mirrorOf>public-snapshots</mirrorOf>
    </mirror>
    <mirror>
      <id>department-nexus-public</id>
      <url>http://nexus.department.company.com/nexus/content/groups/public</url>
      <mirrorOf>external:*,!other-department</mirrorOf>
    </mirror>
  </mirrors>
  ...
</settings>

これで、department-nexus-publicエントリはすべてにのみ使用されるわけではありません。other-department(POMからのリポジトリのID)もチェックできます。

現在、POMのリポジトリにアーティファクトがないかチェックされています。

于 2012-07-24T12:03:36.283 に答える