2012-11-03 12 views
12

私はSonatype Nexusを内部サーバー上で実行していますが、プロキシrepo1.maven.orgや他のリポジトリに使用したいと思います。 Mavenでは、settings.xml<mirror>の設定を追加するだけです。どのようにGradleでこれを行うことができますか?Sonatype NexusをGradleで使用して代理人を代理する方法は?

更新:私はNexusインスタンスのURLをそれぞれのすべてのプロジェクトにハードコードすることなく、これを実行したいと思います。だから私は、Maven <mirror>設定の正確なレプリカを探しています。

私は今、このような何かを行うことですために思い付くことが最高:

repositories { 
    maven { 
     url "$nexusUrl/content/groups/public" 
    } 
} 

をし、各開発者のコ​​ンピュータ上で~/.gradle/gradle.propertiesでこれを持っている:

nexusUrl = https://nexus.company.com 

はしかし、これはハッキングに見えます私はまだ各プロジェクトに5行を追加する必要があります。これを行うよりエレガントな方法はありますか?

答えて

12

初期化スクリプトが最適な方法です。 User Guideのこの章をご覧ください。

これらは、すべてのプロジェクトにロジックを注入する方法を提供します。

3

としてはthe documentationabout init scriptsで説明:

.gradle例えばで終わるフォルダやファイルを作成します。:~/.gradle/init.d/mirror.gradle。 内容:

initscript { 
    repositories { 
    maven { 
     url "http://repo.mycompany.com/maven2" 
    } 
    } 
} 
+0

このドキュメントのURLのフラグメントIDは存在しません。どのドキュメントを参照していますか? – Kkkev

+1

Ctrl-Fを押し、 "http://repo.mycompany.com/maven2"と入力したときに見つかるもの –

+0

この解決策には欠点があります! Mavenでは、プロジェクトpomにリポジトリを指定することができます。あなたのPCでそれをあなた自身のリポジトリで上書きすることができますが、これはアーティファクト作成者ではなく、開発者の選択です。アーティファクトの作成者は、使用するローカルリポジトリをどのように決定できますか? –

関連する問題