0

Jenkins で大規模なサードパーティ プロジェクト (Apache sling) を毎週ビルドしています。独自のアーカイブ サーバーを使用してすべての依存関係をダウンロードするように、jenkin の settings.xml をセットアップしました (ミラー セクションを使用)。

ただし、「デプロイ」を行うときに、ビルドで自分のスナップショット リポジトリにスナップショットをアップロードする方法がわかりません。代わりに、スナップショットを apache.org スナップショット サーバーにアップロードしようとして失敗します。

リポジトリをオーバーライドできるのと同様の方法で、スナップショット サーバーをオーバーライドするように settings.xml を構成する方法はありますか? これは、プロジェクトの pom.xml を編集せずに行う必要があります。

これを行う必要があるのは、別のプロジェクトの依存関係としてスナップショット バージョンの一部にアクセスする必要があり、それらすべてを手動でアーカイブにアップロードする必要がないためです。

これが私の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">

<localRepository>/Users/Shared/Jenkins/.m2/repository</localRepository>

<servers>
    <server>
        <id>astra.internal</id>
        <username>-deleted-</username>
        <password>-deleted-</password>
    </server>
    <server>
        <id>astra.snapshots</id>
        <username>-deleted-</username>
        <password>-deleted-</password>
    </server>
</servers>

<mirrors>
    <mirror>
        <id>central-proxy</id>
        <name>Local proxy of central repo</name>
        <url>http://-deleted-.com/repository/internal</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
    <mirror>
        <id>snapshots</id>
        <name>Local proxy of snapshots</name>
        <url>http://-deleted-.com/repository/internal</url>
        <mirrorOf>snapshots</mirrorOf>
    </mirror>
</mirrors>

<profiles>
    <profile>
        <id>Repository Proxy</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <!-- ******************************************************* -->
        <!-- repositories for jar artifacts -->
        <profile>
            <!-- ******************************************************* -->
            <repositories>
                <repository>
                    <id>astra.internal</id>
                    <url>http://-deleted-.com/repository/internal/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </repository>

                <repository>
                    <id>astra.snapshots</id>
                    <url>http://-deleted-.com/repository/snapshots/</url>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
        </profile>
    </profiles>
</settings>
4

3 に答える 3

0

リポジトリの場所は pom.xml の一部であり、distributionManagementは多くの場合、最上位の親の 1 つにあります。したがって、settings.xml から設定できるものではありません。sling-project がこれを (間接的な) 親として使用すると仮定すると、distMgmtSnapshotsUrlプロパティで変更できる可能性が高くなります。 org.apache:apache:13:pomを参照してください。

于 2013-10-19T14:17:01.507 に答える
0

私が知る限り、プロジェクトの pom ファイルを編集し、このセクションを作成する必要があります (もちろんサーバー設定も一緒に):

  <distributionManagement>
    <repository>
      <id>archiva.internal</id>
      <name>Internal Release Repository</name>
      <url>dav:http://localhost:8080/repository/internal</url>
    </repository>
    <snapshotRepository>
      <id>archiva.snapshots</id>
      <name>Internal Snapshot Repository</name>
      <url>http://localhost:8080/repository/snapshots</url>
    </snapshotRepository>
  </distributionManagement>

継承元の会社全体の pom に入れるのに役立ちますか?

于 2013-10-19T15:41:36.660 に答える