私は、多くのモジュールと1つのメインアプリケーションを持つ複雑なプロジェクトを持っています。 これらのモジュールの2つに "uploadArchives"を追加しました(アンドロイドライブラリがあるためです)。このようにして、Mavenのライブラリを私のメインアプリケーションから単にアップロードuploadArchivesを実行するか、またはgradleを使ってこのタスク "uploadArchives"を呼び出して公開することができます。
"build.finalizedBy(uploadArchives)"という、あなたが公開したいライブラリのbuild.gradleでこれを使うことができます。例えば
:すべてのビルド、uploadArchives意志を開始した後
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
minSdkVersion 17
targetSdkVersion 23
versionCode 2
versionName "2.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
lintOptions {
abortOnError false
}
}
build.finalizedBy(uploadArchives)
task wrapper(type: Wrapper) {
gradleVersion = "2.8"
}
dependencies {
compile project(':spfshared')
compile 'com.google.code.gson:gson:2.4'
}
//task for Sonatype Nexus OSS
uploadArchives {
repositories {
mavenDeployer {
repository(
url: "${nexusUrl}/content/repositories/releases") {
authentication(userName: nexusUsername, password: nexusPassword)
}
snapshotRepository(
url: "${nexusUrl}/content/repositories/snapshots") {
authentication(userName: nexusUsername, password: nexusPassword)
}
pom.version = "2.0.0.1"
pom.artifactId = "spflib"
pom.groupId = "it.polimi.spf"
}
}
}
。
私はこのソリューションを試してみました。
また、「build.dependsOn myTaskName」のソリューションを試してみましたが、成功しませんでした。あなたが試してみたいですが、私のAndroidStudioでは、最初の解決策です。
PS:「gradlew -q build」コマンドを使用して解決策をテストし、Android Studioのメインモジュール(特にメインアプリケーション)から「build」タスクを実行しています。
リリースごとに「uploadArchives」を呼び出す場合は、単に「build」をリリースタスクに置き換えます。
更新: が、私はこれらのコードラインでも試してみました:
defaultTasks 'uploadArchives'
clean.finalizedBy(uploadArchives)
assembleDebug.finalizedBy(uploadArchives)
assembleRelease.finalizedBy(uploadArchives)
しかし、時には、彼らは「uploadArchives」を何度も呼び出すと、私はそれは良い考えではありませんと思います。私は全体の時間のために試してみました
何を求めていることは非常に困難である... :)
あなたはtravis.ciやビルド自動化スクリプト(.SHファイル)の別の並べ替えを作成する方法について考えたことがありますか?確かにgradlewや他の端末ツールは、アプリケーションを構築するためのオプションがあります。そこから、これらのアクションを実行するたびにビルドスクリプトを実行するのと同じくらい簡単です。 –