2016-11-02 8 views
2

私のbuild.gradleファイルのどこにでも私のMavenリポジトリを定義する必要があります。定義は、多くの場合、非常に面倒なことができます:Gradleのが一般的に使用されるMavenのリポジトリを定義する良い方法(すなわちjcenter())を提供していますどのように上記カスタムMavenリポジトリを定義するためのGradle機能?

repositories { 
    jcenter() 

    maven { 
     url "https://mymavenurl/releases" 
     credentials(Credentials) { 
      username USERNAME 
      password PASSWORD 
     } 
    } 
} 

注意してください。私はプラグインまたは親のグラデルスクリプトで、ファンクション内のリポジトリを定義する方法、または静的に定義し、次にrepositoriesブロック:myMavenRepo()の中で呼び出す方法が欲しいです。

グルーヴィーについての知識が不足しているため、これを行ううまい方法を見つけるために見ているグルーヴィーなソースを解析する必要はありません。どうすればいい?

親のグラデルファイルでは、allProjectsまたはsubProjectsを使用できます。私はこれらのリポジトリをすべてのモジュールに追加するのではなく、特定のリポジトリだけを追加したいと思います。

答えて

5

を含むファイル$HOME/.gradle/init.gradleを作成するのと同じ

repositories { 
    mavenCentral() 
    myRepo() 
} 

をbuildscriptリポジトリのために行うことができます。

buildscript.repositories.ext.myRepo = { 
    buildscript.repositories.maven { 
     url "https://mymavenurl/releases" 
     credentials() { 
      username USERNAME 
      password PASSWORD 
     } 
    } 
} 
+0

これはうまくいくようです。ありがとう:-) – spierce7

+0

私にはリポジトリでのみ動作しますが、buildscript.repositoriesでは動作しません – Gavriel

+1

これは動作します:project.buildscript.repositories.ext.mavenMyPluginsRelease = { project.buildscript.repositories.maven {... – Gavriel

2

すべてのプロジェクトでこれらのリポジトリを使用する場合は、initialization scriptで定義できます。

repositories.ext.myRepo = { 
    repositories.maven { 
     url "https://mymavenurl/releases" 
     credentials() { 
      username USERNAME 
      password PASSWORD 
     } 
    } 
} 

次に、あなたが呼び出すことができるはずです:ちょうどこのような何か試してみてください

allprojects { 
    repositories { 
     jcenter() 

     maven { 
      url "https://mymavenurl/releases" 
      credentials(Credentials) { 
       username USERNAME 
       password PASSWORD 
      } 
     } 
    } 
} 
+0

ああ、私は指定したはずです。私はそれをすべてのプロジェクトに追加したくありません。 – spierce7

関連する問題