Solange die Android-Funktionalität, die Sie in einem Glas benötigen anstelle eines aar ist, dann sollten Sie in der Lage sein, dies zu tun, ziemlich leicht, wie mein Team ein paar Artefakte wie diese hat. Für Android jar Artefakte in Maven Central, brauchen Sie nur die Abhängigkeit hinzuzufügen:
compile 'com.google.android:android:4.1.1.4'
Wenn die Funktionalität in einer der Artefakte ist über den Android SDK Manager installiert haben, dann können Sie nur die Abhängigkeit, wie oben hinzufügen, aber Sie werden die lokalen Android Repo hinzufügen müssen, um die Artefakte ziehen:
maven { url "file:///${System.env.ANDROID_HOME}/extras/android/m2repository" }
bearbeiten
auch vergessen zu erwähnen, sollten Sie die Android-Artefakte markieren, wie vorgesehen, so dass Sie don‘ t bekommen dep Abhängigkeitskonflikte. Sie können das tun, indem Sie die folgenden ein:
configurations {
provided
compile.extendsFrom provided
}
dependencies {
provided('com.google.android:android:4.1.1.2')
}
Lassen Sie mich wissen, wenn Sie ein Beispiel build.gradle brauchen und ich werde hinzufügen.
Edit 2
Unten ist ein Beispiel build.gradle, die wir für eines unserer Projekte verwenden.
apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'pmd'
apply plugin: 'jacoco'
apply plugin: 'findbugs'
apply plugin: 'project-report'
apply plugin: 'jxr'
group = 'com.example'
archivesBaseName = 'project-name'
version = '1.0.0-SNAPSHOT'
sourceCompatibility = 1.7
configurations {
provided
compile.extendsFrom provided
}
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2/' }
maven { url "http://jcenter.bintray.com" }
}
dependencies {
classpath('net.davidecavestro:gradle-jxr-plugin:0.1')
}
}
repositories {
mavenCentral()
if (project.hasProperty("mavenLocal")) {
maven { url "${System.env.HOME}/.m2/repository" }
}
maven { url "file:///${System.env.ANDROID_HOME}/extras/android/m2repository" }
}
dependencies {
compile('com.google.code.findbugs:annotations:2.0.2')
compile('com.google.code.gson:gson:2.2.4')
compile('com.google.guava:guava:15.0')
provided('com.google.android:android:4.0.1.2')
testCompile('commons-io:commons-io:2.4')
testCompile('junit:junit:4.11')
testCompile('org.robolectric:robolectric:2.3')
testCompile('org.mockito:mockito-all:1.10.8')
}
test {
dependsOn ':assemble'
testLogging {
showExceptions = true
showStackTraces = true
exceptionFormat = "full"
events "passed", "skipped", "failed"
}
}
javadoc {
source = sourceSets.main.allJava
classpath = test.classpath
}
jacocoTestReport {
dependsOn test
description = "Generate Jacoco coverate reports after running tests."
reports {
xml.enabled false
csv.enabled false
html.destination "${buildDir}/reports/jacoco"
}
}
pmd.ignoreFailures = true
pmdTest.enabled = false
pmdMain.enabled = true
pmdMain {
reports {
xml.enabled = false
html.enabled = true
}
}
findbugs.ignoreFailures = true
findbugs.excludeFilter = file('./findbugs-exclude-filter.xml')
findbugsTest.enabled = false
findbugsMain.enabled = true
findbugsMain {
reports {
xml.enabled = false
html.enabled = true
}
}
task wrapper(type: Wrapper) {
gradleVersion = '2.1'
distributionUrl = "http://services.gradle.org/distributions/gradle-${gradleVersion}-all.zip"
}
task sourcesJar(type: Jar) {
classifier = 'sources'
from sourceSets.main.allSource
}
task javadocJar(type: Jar) {
classifier = 'javadoc'
from "${projectDir}/build/docs"
}
artifacts {
archives sourcesJar
archives javadocJar
}
uploadSite.dependsOn(':check')
check.dependsOn('sourcesJar')
check.dependsOn('javadoc')
check.dependsOn('jacocoTestReport')
check.dependsOn('projectReport')
check.dependsOn('jxr')
Was ist der Wert bei der Erstellung eines "plain java module", in diesem Fall über ein Bibliotheksprojekt? Schließlich können Sie dieses Java-Modul nur in einer Android-App verwenden. – CommonsWare
Dies ist nicht für Standard-Telefon-App, sondern für benutzerdefinierte Hardware gedacht. Wir möchten in der Lage sein, den gleichen Krug unter mehreren Anwendungen auf dem Gerät zu teilen. – mr49