#android #gradle #jar #android-gradle-plugin #aar
#Android #gradle #jar #android-gradle-плагин #aar
Вопрос:
У меня есть проект AndroidStudioSupport, в котором есть модули. 1. модуль 1 заботится о части пользовательского интерфейса Android 2. модуль 2 — это проект библиотеки, который генерирует файл .aar 3. модуль 3 — это проект Java, который генерирует файл jar
Теперь я хочу построить проект таким образом, чтобы 1. Сначала создайте jar project 2. Затем скопируйте сгенерированный jar в библиотеки library project в качестве зависимости 3. Затем создайте файл aar 4. Затем скопируйте сгенерированный aar в библиотеки проекта пользовательского интерфейса в качестве зависимости 5. Наконец, создайте файл .apk
Пожалуйста, подскажите мне, какие изменения я должен внести в свои файлы gradle
файл gradle проекта jar
apply plugin: 'java'
sourceSets {
main.java.srcDirs = ['src/main/java']
main.resources.srcDirs = ['src/main/java']
test.java.srcDirs = ['tests/java']
test.resources.srcDirs = ['tests/resources']
}
jar {
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it)}
}
}
файл gradle библиотечного проекта
apply plugin: 'com.android.library'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':java_project')
}
task copyToLib(type: Copy) {
from configurations.compile
into 'libs'
}
build.dependsOn(copyToLib)
android {
publishNonDefault true
compileSdkVersion 21
buildToolsVersion '23.0.2'
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src/main/java']
resources.srcDirs = ['src/main/java']
aidl.srcDirs = ['src/main/java']
renderscript.srcDirs = ['src/main/java']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('test')
}
buildTypes {
debug {
jniDebuggable true
}
}
}
Эта текущая реализация не включает jar из моего Java-проекта
Комментарии:
1. Ну, мы не можем видеть ваши файлы gradle, поэтому мы не можем посоветовать, какие изменения необходимо внести.
2.Вы хотите многопроектную сборку, что не так с обычным способом
include 'subproject'
compile ':subproject'
?3. @weston Я добавил свои файлы gradle
4. Итак, у вас есть обязательный набор требований в вопросе; Я хочу сделать это, затем то, затем другое. Gradle лучше использовать декларативно; это задачи, тезисы — их зависимости друг от друга, сделайте это. Это то, что у вас уже есть, в чем проблема с тем, что у вас есть?
5. @weston Текущая реализация не включает в себя какие-либо классы из jar project. Поэтому я решил добавить generated .jar в качестве зависимости