2016-07-29 12 views
0

私は自分のライブラリを使用しているAndroidアプリを持っています。私は同時にそれらを開発していますので、私が図書館を変更したときに、私のアプリでそれをテストしたいと思います。ローカルMavenリポジトリと連携するAndroidライブラリ

私のライブラリは他の開発者によっても使用されるため、これらは異なるプロジェクトとしてセットアップされます。私たちが作業する方法は、CIプラットフォームを使ってライブラリを構築し、それをアーティファクトサーバに展開することです。

次に、私はこのライブラリを直接アーティファクトで参照しています。このようにして私のCIプラットフォームがアプリケーションをビルドするとき、ビルドプロセスはアーティファクトからlibを取り、CIはスムーズに動作します。

これは良い方法ですが、変更をコミットし、プルリクエストを作成し、開発ブランチとマージし、CIがビルドするのを待たなければならないので、それらを並行して開発するときに困惑しますアーティファクト・サーバーにデプロイするだけで、アプリケーションでテストできます。

java EEの開発から来て、私はmaven installを使用しました。これは、local mavenリポジトリにアーティファクトをデプロイしました。私はすでにWebアプリケーションからそれを使用することができました。

私は同様のことをやってみたいと思います。つまり、自分のローカルレポに私のアーティファクトを展開して、ローカルのレポのアーティファクトは更新されますが、リモートのアーティファクトは更新されません。このようにして、CIセットアップをその場で維持しながら、より簡単にデバッグすることができます。

しかし、私はどのようにこれをgradleで行うのか分かりません。 artifactoryプラグインは、artifactoryサーバー上での展開のみを可能にするようです。

答えて

1

mavenプラグインを使用している場合は、インストールタスクを実行して、ローカルMavenリポジトリ[1]にアーティファクトを展開できます。ローカルのMavenリポジトリにアーチファクトを配備した後、依存関係を解決できるリポジトリの1つとしてmavenLocal() [2]を追加する必要があります。私が使用する1つの戦略は、ローカルコピーが常に取得されるように、ローカルコピーのカスタムバージョンを常に設定することです - しかし、そうしないと、リポジトリがリストされた順序で依存関係が解決されますmavenLocalがArtifactoryサーバの前にあるようにする必要があります)。

[1] https://docs.gradle.org/current/userguide/maven_plugin.htmlhttps://github.com/dcendents/android-maven-gradle-plugin

[2] https://discuss.gradle.org/t/how-to-use-maven-local-repository-for-gradle-build/2244

関連する問題