У меня есть проект Android, состоящий из двух проектов: модель, полностью написанная на Java, и проект Android в зависимости от модели.При сборке всего приложения создается банка под mymodel/build/libs/mymodel.jar
.Однако у этой банки нет ни источника, ни документации.Я хочу сформулировать задачу gradle, которая экспортирует «полный» jar.
mymodel's build.gradle
:
apply plugin: 'java'
targetCompatibility = '1.7'
sourceCompatibility = '1.7'
есть еще два файла gradle: myapp:
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "ch.myapp"
minSdkVersion 14
targetSdkVersion 28
...
}
sourceSets { ... }
}
dependencies {
implementation project(':mymodel')
...
}
И есть также файл Gradle верхнего уровня
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.0'
}
}
allprojects {
repositories {
jcenter()
google()
}
}
Я пробовал:
- Как сделать .jar из проекта Android Studio
task createJar(type: Copy) {
from('build/libs/')
into('.')
include('classes.jar')
rename('classes.jar', 'mymodel.jar')
}
в build.gradle
для моей модели.Выполнение этой задачи является «успешным»:
20:59:58: Executing task 'createJar'...
Executing tasks: [createJar]
> Task :mymodel:deleteJar UP-TO-DATE
> Task :mymodel:createJar NO-SOURCE
BUILD SUCCESSFUL in 0s
1 actionable task: 1 up-to-date
20:59:58: Task execution finished 'createJar'.
Но банка не создается.Если я закомментирую строки include
и rename
, то существующий промежуточный jar просто копируется на две директории вверх (и NO-SOURCE
исчезает из вывода), поэтому я знаю, что пути правильные.В проекте нет ни 1041 *, ни каких-либо других jar
с недавней отметкой времени.Я нашел «классные» задачи для моего модуля, но при его успешном выполнении не создается никаких файлов.