4

すべてのアーティファクトを保存するMavenリポジトリがあります

http://example.com/content/public

さまざまなアーティファクトを保存する2番目のリポジトリがあります

http://example.com/content/type1

デフォルトでは、すべてのビルドで「content/public」からアーティファクトを取得します

しかし、フラグがオンになっている特定のユースケースでは、「content/type1」からアーティファクトを取得したいと思います。

アーティファクトが存在しない場合は、「content/public」で検索します

私のapache-maven/3.04./conf/settings.xmlは次のようになります

<mirrors>
    <mirror>
        <!-- This sends everything else to /public -->
        <id>nexus</id>
        <mirrorOf>*,!type1</mirrorOf>
        <url>http://example.com/content/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><updatePolicy>never</updatePolicy></snapshots>
            </repository>
        </repositories>
        <pluginRepositories>
            <pluginRepository>
                <id>central</id>
                <url>http://central</url>
                <releases><enabled>true</enabled></releases>
                <snapshots><enabled>true</enabled></snapshots>
            </pluginRepository>
        </pluginRepositories>

        <properties>
            <!-- Default this property so we can create references easily. -->
            <nexusHostName>example.com</nexusHostName>
        </properties>
    </profile>
</profiles>
<activeProfiles>
    <!-- make the profile active all the time -->
    <activeProfile>nexus</activeProfile>
</activeProfiles>

pom.xmlの私のプロファイルは次のようになります

<profile>
        <id>type1-build</id>
        <activation>
            <property>
                <name>type1</name>
                <value>true</value>
            </property>
        </activation>

        <repositories>
            <repository>
                <id>type1</id>
                <name>Type1 Repo</name>
                <url>http://${nexusHostName}/content/groups/type1/</url>
                <layout>default</layout>
                <!-- Enforce strict checksums and always update releases and snapshots -->
                <releases>
                    <enabled>true</enabled>
                    <checksumPolicy>fail</checksumPolicy>
                    <updatePolicy>always</updatePolicy>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                    <checksumPolicy>fail</checksumPolicy>
                    <updatePolicy>always</updatePolicy>
                </snapshots>
            </repository>
            <repository>
                <id>nexus</id>
                <name>Nexus</name>
                <url>http://${nexusHostName}/content/groups/public/</url>
                <layout>default</layout>
                <!-- Enforce strict checksums and always update releases and snapshots -->
                <releases>
                    <enabled>false</enabled>
                    <checksumPolicy>fail</checksumPolicy>
                    <updatePolicy>always</updatePolicy>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                    <checksumPolicy>fail</checksumPolicy>
                    <updatePolicy>always</updatePolicy>
                </snapshots>
            </repository>
        </repositories>

    </profile>

これを行った後でも、mvngoal1 -Dtype1 = trueのような目標を実行すると、「content/public」でアーティファクトが検索されます。

誰かが私が間違っていることを教えてもらえますか

4

1 に答える 1

0

リポジトリ content/type1 の順序を最初に変更し、次に content/public を変更するだけです

于 2013-07-05T14:56:15.887 に答える