11276

[code]

    maven {
      url "https://my.custom.repository/path"
    }
    
    ...
    
    dependencies {
      ...
      compile 'my.custom.library:library-name:x.x.x@aar'
    }
    
[/code]

のように、自分で作成したAndroidライブラリをGradleで`dependencies`の`compile`に指定するだけで読み込めるようにしたいのですが、どのようにすれば良いのでしょう？  
Mavenの公開リポジトリには登録する必要はなく、リポジトリのURLを知っている人だけが使えればよいです。

もしくは、手順を説明しているWebサイトがあれば教えてください。


CC BY-SA 3.0
2015-06-12T03:26:32.207
11274
2015-06-15T00:32:58.490
450
question
android android-studio
Androidで自作ライブラリをGradleで利用できるようにしたい


[mavenのインハウスリポジトリを作るよ -
Qiita](http://qiita.com/NewGyu/items/71b50d036eef64be9b96)


CC BY-SA 3.0
2015-06-12T03:58:53.350
11275
2015-06-12T03:58:53.350
2376
11274
answer


ライブラリプロジェクト側で、次の記述を追加します。

[code]

    apply plugin: 'maven'
    
    uploadArchives {
        repositories.mavenDeployer {
            // mavenローカルにいれる設定
            repository url: "file://$System.env.HOME/.m2/repository"
            pom.version = '1.0.0'
            pom.groupId = 'com.mokelab'
            pom.artifactId = 'InputDialog-v4'
         }
    }
    
    // 通常のライブラリプロジェクトを作る設定が続きます
    
[/code]

ライブラリプロジェクトのビルドで、次のタスクを実行します。

[code]

    $ sh gradlew clean uploadArchives
    
[/code]

これで、~/.m2/repositoryにライブラリがインストールされます。この`~/.m2/repository`に生成されたファイルツリーをどこかhttpで見れるところに置くと、質問の通りの指定ができるようになります。

[code]

    maven {
      url "https://my.custom.repository"
    }
    
[/code]

で、上記の例のライブラリを参照可能にするには、次のようなURLでアクセスできるようになっていればOKです。

[code]

    https://my.custom.repository/com/mokelab/InputDialog-v4/1.0.0/InputDialog-v4-1.0.0.aar
    https://my.custom.repository/com/mokelab/InputDialog-v4/1.0.0/InputDialog-v4-1.0.0.pom
    ... その他m2/repositoryに生成される内容
    
[/code]


CC BY-SA 3.0
2015-06-12T04:12:57.927
11276
2015-06-12T04:12:57.927
845
11274
answer


どうしても閉じたネットワーク内に建てる要件でなければbintrayを利用するのが手っ取り早いかと。

閉じたネットワーク内に建てる場合はSonatype Nexusがまさにそんな利用用途です。  
nexusはdockerで動かすのが簡単です。  
<https://registry.hub.docker.com/u/sonatype/nexus/>


CC BY-SA 3.0
2015-06-15T00:32:58.490
11343
2015-06-15T00:32:58.490
10140
11274
answer