Как экспортировать jar с исходным кодом и документацией из java-проекта андроид-студии? - PullRequest
0 голосов
/ 07 июня 2019

У меня есть проект 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 с недавней отметкой времени.Я нашел «классные» задачи для моего модуля, но при его успешном выполнении не создается никаких файлов.

...