2012-03-20 6 views
3

私は最終的にarchivaとmavenを使って作業しています。activeByDefaultを使用せずにarchivaリポジトリを使用するようにmavenを設定しますか?

本当に私を悩ませているのは、activeByDefaultがtrueに設定されているプロファイルを使用せずに、内部リポジトリとスナップショットリポジトリを設定する方法です。

私は、SUPER super pomを使用しています。これは、リリースのdistributionManagement情報を含む全社的なpomです。私は、このpomにリポジトリを指定し、settings.xmlで認証設定を構成できると考えていましたか?プロファイルなしでリポジトリタグを使用できますか?私の内部およびスナップショットリポジトリの "プロファイル"は決して変更されないはずですから...

私が明確に指導しようとしているのは、常にアクティブな「デフォルト」プロファイルを使用しています。私はactiveByDefaultがベストプラクティスではないと私はそれを使用するつもりはないと聞きます。

これで、こういったことはどうすればいいですか?私の内部リポジトリはMavenの中央リポジトリのミラーですので、内部のアーティファクトサーバだけを使用するように開発者を制限したいと思います。覚えておいてください - 私は、activeByDefaultがtrueに設定されたプロファイルを望んでいません。私は十分にこれを強調することはできません! Mavenミラーを使用すべきですか?追加のリポジトリを追加する必要がありますか?

mirrorsタグの代わりにrepositoriesタグを使用すると、デフォルトのMaven中心ではなく、Archiva設定のみを使用するよう強制されますか?

または、私が達成しようとしているのは、mavenのmirrorsタグのみを使用して行うことができますか?リポジトリタグを使用するときにリポジトリの資格情報を設定する方法を知っていますが、ミラーでは認識しません。これはどうですか?ミラーの何かに資格情報を提供することは、リポジトリタグのタグと同じものをタグ付けしていますか?

明らかなものがありませんか?私はこれまで、Mavenを使って物事を稼働させていました。私はそれが最終的に価値があることを知っていますが、それは確かに私に1トンの悪化を引き起こしており、リソースはまれであるようです。どちらか、または人々はそれを使用してコンテンツですが、彼らはベストプラクティスに関係なくお寄せください。

<mirrors> 
    <mirror> 
     <id>my-internal-repo</id> 
     <mirrorOf>central</mirrorOf> // use * for do mirror of all 
     <name>Clinker Maven Repository</name> 
     <url>http://my-repo-host/my-repo-path</url> 
    </mirror> 
</mirrors> 

my-internal-repoが保護されている場合は、資格情報を設定することができます。

は、セットアップに(settings.xml内の)このようなミラーを必要とし、中央のミラーとしてあなたの内部のレポを使用するには、あなたに

答えて

7

ありがとうございました:

<servers> 
    <server> 
     <id>my-internal-repo</id> 
     <username>youruser</username> 
     <password>yourpassword</password> 
    </server> 
</servers> 

サーバーIDタグの内容は、ミラーのIDと一致する必要があります。

は、スナップショットのアーティファクトの使用はない設定レベルで、制御され、明確にプロジェクトレベルで定義されなければならないので、あなたは、あなたのプロジェクトのPOMでリポジトリを設定する必要がありますinternal-snapshotsリポジトリを使用するには:

<repository> 
    <id>internal-snapshots</id> 
    <url>http://your-repo-host/internal-snapshots-path</url> 
    <releases> 
     <enabled>false</enabled> 
    </releases> 
    <snapshots> 
     <enabled>true</enabled> 
    </snapshots> 
</repository> 

そして、

<mirrors> 
    <mirror> 
     <id>my-internal-repo</id> 
     <mirrorOf>central, !internal-snapshots</mirrorOf> // use * to do mirror of all 
     <name>Clinker Maven Repository</name> 
     <url>http://my-repo-host/my-repo-path</url> 
    </mirror> 
</mirrors> 

をして(それが保護されています場合)、サーバーを追加します:最後に、あなたはミラーからinternal-snapshotsを除外する必要があり

<servers> 
    <server> 
     <id>my-internal-repo</id> 
     <username>youruser</username> 
     <password>yourpassword</password> 
    </server> 
    <server> 
     <id>internal-snapshots</id> 
     <username>youruser</username> 
     <password>yourpassword</password> 
    </server> 
</servers> 
+0

ありがとう、これを行うようなきれいな方法。私はMavenプロファイルを乱用することはできません - これは優れた回避策です。 –

+0

あなたの設定は自動的にMaven中央リポジトリからプラグインをダウンロードしますか、またはタグをどこかに追加する必要がありますか?もしそうなら、どうすれば設定できますか? –

+0

ミラーもプラグインで動作するはずです。これ以上の設定は不要です。 – amuniz

関連する問題