AndroidライブラリプロジェクトをローカルのMavenリポジトリにインストールします。これがbuild.gradleです。
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.Android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'Android-library'
apply plugin: 'maven'
version = "1.0.0-SNAPSHOT"
group = "com.example"
repositories {
mavenCentral()
}
Android {
compileSdkVersion 18
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 9
targetSdkVersion 18
}
}
私が走ると:
gradle install -i
ここで立ち往生しています:
Executing task ':project:installTest' due to:
Task has not declared any outputs.
Starting process 'command 'd:\Android-sdk-windows\platform-tools\adb.exe''. Working directory: D:\Projects\Java\....... Command: d:\Android-sdk-windows\platform-tools\adb.exe install -r D:\Projects\Java\.......\build\apk\project.apk
An attempt to initialize for well behaving parent process finished.
Successfully started process 'command 'd:\Android-sdk-windows\platform-tools\adb.exe''
> Building > :project:installTest
だから私が最初に気づいたのは、それをAPKとしてデバイスに展開しようとする奇妙な理由で試みているということです。
私は何か間違ったことをしていますか、それともAndroidライブラリのプラグインがmavenプラグインと互換性がないのですか?
編集:githubページを参照してください( https://github.com/dcendents/Android-maven-gradle-plugin =)最新の手順については、使用する正しいバージョンを見つけてください。オリジナルの手順は、最新のGradleリリースではもう適していません。
元の投稿:
MavenプラグインをAndroidライブラリプロジェクトと互換性があるように変更しました。githubのプロジェクトを参照してください: https://github.com/dcendents/Android-maven-gradle-プラグイン
Androidライブラリプロジェクトを使用するように構成します。
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.github.dcendents:Android-maven-plugin:1.0'
}
}
apply plugin: 'Android-library'
apply plugin: 'Android-maven'
次に、インストールタスクを使用してローカルのmavenリポジトリにaarをインストールできるはずです。
これがお役に立てば幸いです。プラグインに問題が見つかった場合は、githubでお知らせください。修正します。
CyclingSirの答えについて詳しく説明するために、個別の「installArchives」タスクを追加することを提案します。これにより、カスタムアーティファクト(ソースなど)の取得も処理されます。
apply plugin: 'maven'
task installArchives(type: Upload) {
description "Installs the artifacts to the local Maven repository."
configuration = configurations['archives']
repositories {
mavenDeployer {
repository url: repositories.mavenLocal().url
}
}
}
Gradle Android plugin v0.5.5、gradle install
はまだデバイスに何かをインストールしようとします。
カスタムプラグインを使用したくない場合は、より簡単な解決策があります。代わりに、別の名前でインストールタスクを再作成してください。 installArchives
と呼びました。次のコードをbuild.gradle
に追加します。
task installArchives(type: Upload) {
description "Installs the artifacts to the local Maven repository."
repositories.mavenInstaller {
configuration = configurations.default
pom.groupId = 'my.group'
pom.artifactId = 'my-artifact'
pom.version = '1.0.0'
}
}
これで、gradle installArchives
を実行してaarをローカルにインストールできます。
UPDATE 2014-11-26
Androidビルドツールのバージョンが0.5.5の場合、この記事の執筆時点では、以下の答えが理にかなっています。ほとんどの場合、古くなっており、動作しなくなっています。
上記の回答で説明したように、Android-maven-plugin
を使用するようにプロジェクトを個人的に切り替えました。プラグインは、Androidビルドツールの最新バージョンでも正常に動作します。
2014年2月の元の回答
AARとして公開しています
古いバージョンのcom.Android.tools.build:gradle
(つまり、0.5.4)を使用してもかまわない場合は、 このブログ投稿 で説明されているアプローチを使用できます。 adt-dev mailing-listでの議論 によると、これは0.5.5では機能しません。
次の行をbuild.gradle
に追加します。
apply plugin: 'maven-publish'
// load bundleRelease task
// this will not load the task in 0.5.5
Android.libraryVariants
publishing {
publications {
maven(MavenPublication) {
artifact bundleRelease
}
}
}
ローカルのMavenリポジトリに公開するには、次のコマンドを呼び出します。
gradle publishToMavenLocal
JARとして公開
Androidライブラリにカスタムリソースがなく、JARとして公開できる場合、0.5.5でも機能する次のbuild.gradle
を使用できます。
// build JAR file
task androidReleaseJar(type: Jar, dependsOn: assembleRelease) {
from "$buildDir/classes/release/"
}
apply plugin: 'maven-publish'
publishing {
publications {
maven(MavenPublication) {
artifact androidReleaseJar
}
}
}
ローカルのMavenリポジトリに公開するには、次のコマンドを呼び出します。
gradle publishToMavenLocal
ここで説明するようにアップロードアーカイブを定義することで問題を解決しました: Gradleドキュメント52.6.2。Mavenリポジトリへのデプロイ
uploadArchives {
repositories {
mavenDeployer {
repository(url: "file://${System.env.HOME}/.m2/repository/")
}
}
}
呼び出す
gradle uploadArchives
アーティファクトを(私の場合はローカル)Mavenリポジトリーにデプロイします。私は、ローカルリポジトリのURLを指定するための単純でより柔軟な方法を見つけられませんでした。 mavenLocal()はまだですが、上記は私のニーズに適しています。