私はGradle
で構築された2つのアプリケーションによって使用される1つのライブラリを持っているとしましょう。どうすればライブラリを編集/コンパイルすることができますか(ファイルシステム内の完全に異なるフォルダ)、ライブラリを使用してアプリケーションをコンパイルすることはできますか?Gradleの "ローカルリポジトリ"はMavenに似ていますか?
問題は、デフォルトでは、ライブラリとアプリが同じプロジェクトディレクトリにあるべきであるということである。
project
|--library
L--app
ので、アプリの
build.gradle
ファイルは次のようになり
:これはそれ以来の問題である
compile(project(":library"))
ライブラリファイルがアプリケーションフォルダと同じフォルダに格納されている必要があります。また、2つのアプリケーションがあるため、実現できません。
私はMaven
の経験があり、次のように解決しました。アーティファクトはローカルのMavenストレージに保存され、アプリケーションから参照できるため、ファイルシステム内のどこにも関係ありません。 Gradle
の同様のソリューション?
PS。これは次の質問です:私はサードパーティ製のライブラリを使用したいのですが、私はそれをプロジェクトフォルダにコピーし、compile project ':library'
を使って参照する必要がありますか? 'groupId + artifactId + version'だけで完全に独立したファイルシステムの場所と参照に複製する方法はありますか?
のGradleが建てるを公開することができますにプロジェクトレベルの依存関係を追加しますコンパイルするたびにコンパイルされます
その方法ライブラリをMavenローカルリポジトリ(デフォルトでは '〜/ .m2')にコピーしてください。 'maven'プラグインを適用し、' install'タスクを実行するだけです。 https://docs.gradleを参照してください。org/current/userguide/maven_plugin.html –
サードパーティのライブラリを使いたい場合は、mavenプラグインを適用し、mavenセントラルリポジトリ(または必要なライブラリを含む他のMavenリポジトリ)を追加してから参照してくださいそのライブラリは 'groupId + artifactId + version'によって作成されます。 –
はい、私はGradle用のMavenプラグインについて知っていて、MavenアーティファクトをローカルMavenリポジトリに公開しています。しかし、それはGradleにそのような解決策がないことを意味し、それは奇妙に見えます。ところで、私は公共のmavenリポジトリに公開されているmavenの成果物を使うことができますが、すべてのlibs(あるいは最後のバージョン)が公開されているわけではありません。 – 4ntoine