mavencentralのlibのマスターバージョンを使用したい。
Android Gradleの依存関係としてgitリポジトリを宣言することは可能ですか?
mavencentralのlibのマスターバージョンを使用したい。
Android Gradleの依存関係としてgitリポジトリを宣言することは可能ですか?
回答:
私にとって最良の方法は:
手順1.リポジトリの最後にあるbuild.gradleにJitPackリポジトリを追加します。
repositories {
// ...
maven { url "https://jitpack.io" }
}
ステップ2.依存関係をフォームに追加する
dependencies {
compile 'com.github.User:Repo:Tag'
}
マスターブランチで最新のコミットを構築することは可能です、例えば:
dependencies {
compile 'com.github.jitpack:gradle-simple:master-SNAPSHOT'
}
-SNAPSHOT
jitpack.io/docs/#snapshotsを
buildscript
または、このようなサブモジュールとしてリポジトリを登録できます
$ git submodule add my_sub_project_git_url my-sub-project
次に、プロジェクトをsettings.gradleファイルに含めます。これは次のようになります。
include ':my-app', ':my-sub-project'
最後に、プロジェクトを依存関係としてアプリケーションのbuild.gradleファイルに次のようにコンパイルします。
dependencies {
compile project(':my-sub-project')
}
その後、プロジェクトを複製するとき--recursive
に、gitにルートリポジトリとそのすべてのサブモジュールを自動的に複製させるオプションを追加するだけで済みます。
git clone --recursive my_sub_project_git_url
お役に立てば幸いです。
Gradleに新機能が追加され、gitからソースの依存関係を追加できるようになりました。
最初にsettings.gradle
ファイルでリポジトリを定義し、それをモジュール識別子にマップする必要があります。
sourceControl {
gitRepository("https://github.com/gradle/native-samples-cpp-library.git") {
producesModule("org.gradle.cpp-samples:utilities")
}
}
そして今、あなたbuild.gradle
は特定のタグを指すことができます(例えば: 'v1.0'):
dependencies {
...
implementation 'org.gradle.cpp-samples:utilities:v1.0'
}
または特定のブランチに:
dependencies {
...
implementation('org.gradle.cpp-samples:utilities') {
version {
branch = 'release'
}
}
}
警告:
参照:
Gradleが依存関係としてgitリポジトリを追加することをサポートしているとは思いません。私の回避策は:
ライブラリリポがメインプロジェクトリポジトリのフォルダーの外にあることを前提としているため、各プロジェクトは独立したgitリポジトリとなり、ライブラリとメインプロジェクトのgitリポジトリに個別にコミットできます。
ライブラリプロジェクトのフォルダーをメインプロジェクトのフォルダーと同じフォルダーに配置する場合、
あなたは出来る:
トップレベルのsettings.gradleで、ファイルシステム内の場所を指定して、ライブラリリポジトリをプロジェクトとして宣言します。
// Reference: https://looksok.wordpress.com/2014/07/12/compile-gradle-project-with-another-project-as-a-dependency/
include ':lib_project'
project( ':lib_project' ).projectDir = new File(settingsDir, '../library' )
gradle-gitプラグインを使用して、gitリポジトリからライブラリを複製します
import org.ajoberstar.gradle.git.tasks.*
buildscript {
repositories { mavenCentral() }
dependencies { classpath 'org.ajoberstar:gradle-git:0.2.3' }
}
task cloneLibraryGitRepo(type: GitClone) {
def destination = file("../library")
uri = "https://github.com/blabla/library.git"
destinationPath = destination
bare = false
enabled = !destination.exists() //to clone only once
}
プロジェクトの依存関係で、プロジェクトのコードがgitプロジェクトのフォルダーに依存するとします
dependencies {
compile project(':lib_project')
}
私が見つけた最も近いものはhttps://github.com/bat-cha/gradle-plugin-git-dependenciesですが、それをandroidプラグインで動作させることができず、gitの後でもmavenからプルしようとし続けますリポジトリが読み込まれます。