2016-10-17 4 views
-1

私はさまざまなGitリポジトリで管理する必要がある複数のAndroidプロジェクトがあります。これらのプロジェクトはすべてrepoによって管理されています。私はまた私のリソースが含まれているAndroidのライブラリを作成すると、そのモジュールを可能にすることを読んだことがある https://github.com/github/gitignore/blob/master/Android.gitignoreリポジトリでAndroid共有リソースを管理する

:Gitリポジトリで管理されるAndroid用.gitignoreファイルを私が発見したが、私は、画像ファイルが無視されているようなものが表示されません.apkではなく、アプリが使用するリソースです。 https://developer.android.com/studio/projects/android-library.html

共有リソースを格納するためのベストプラクティスはありますか?

+0

[ベストプラクティス]の質問は、スタックオーバーフローに関するトピックではありません(// meta.stackoverflow.com/q/265928/2747593)。この質問は、[Programmers.se]の話題になる可能性があるので、代わりに投稿することを検討してください。 [クロス投稿は一般的には嫌になります](// meta.stackexchange.com/tags/cross-posting/info)、(1)そこに新しい質問を投稿してこの質問を削除するか、(2) [モデレーターを移行する](// meta.stackexchange.com/q/10249/269535)の質問にフラグを立てます。 –

答えて

0

Androidライブラリプロジェクトの作成は簡単です。それを他のダウンストリームアプリに配布することは、本当に面白いことです。

build.gradleファイルのdependenciesブロックにアーティファクトを追加し、自動的にフェッチするように、Androidで他の依存関係をどのように使用するかをミンチするのが理想的です。そこに問題があるのは、JCenter、Maven Central、または他のパブリックアーティファクトホスティングでホストしたくないプライベートライブラリです。一部の企業には、これ専用のアーティファクトホスティングサーバーの内部インスタンスがあります。

幸運にも、maven-publish Gradle pluginを使用してMavenを(マシン上で)ローカルに使用し、同じ効果を達成できます。まず、ライブラリプロジェクトのbuild.gradleファイルで、あなたは

apply plugin: 'maven-publish' 

publishing { 
    publications { 
     mavenJava(MavenPublication) { 
      groupId 'your.package.namespace' 
      artifactId 'library.name' 
      version '0.1' // for example 
      artifacts = configurations.archives.artifacts 
      artifact sourceJar 
     } 
    } 
} 

次を必要とする、あなたは、あなたの下流プロジェクトに

./gradlew publishToMavenLocal 

次を実行して、ローカルのMavenキャッシュにこのライブラリを公開するようmavenLocalを追加する必要があります以前に使用したグループID、案件ID、バージョンを使用して依存関係を追加してください:

repositories { 
    mavenLocal() 
    /* more repositories here */ 
} 

dependencies { 
    compile 'your.package.namespace:library.name:version' 
    /* more dependencies here */ 
} 

すべての開発者は、ライブラリプロジェクトを少なくとも一度はプルダウンしてから、Mavenローカルに公開するコマンドを実行する必要があります。ライブラリプロジェクトが変更された場合は、バージョンを更新する必要があります。変更をプルダウンしてローカルに再度パブリッシュします。これは少し扱いに​​くくなることがあります。

多くの企業では、これを回避するために内部的にサーバーインスタンスをホストしているため、一度内部のホストおよびダウンストリームプロジェクトに公開すると、build.gradleのバージョンが更新され、自動的に同期されます。これには、(ライブラリの)publishingブロックと(ダウンストリームプロジェクトの)ブロックのためのいくつかの追加の設定が必要です。あなたがその方向に向かうつもりなら、それを研究するためにあなたに任せます。

関連する問題