如何从android studio java项目中导出包含源和文档的jar?

时间:2019-06-07 20:44:13

标签: java android gradle jar android-gradle

我有一个由两个项目组成的android项目:一个完全用Java编写的模型,另一个取决于模型的android项目。 构建整个应用程序时,将在mymodel/build/libs/mymodel.jar下创建一个jar。 但是,此jar既没有源也没有文档。我要制定一个gradle任务,以导出一个“完整”的jar。

mymodel的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()
    }
}

我尝试过:

task createJar(type: Copy) {
    from('build/libs/')
    into('.')
    include('classes.jar')
    rename('classes.jar', 'mymodel.jar')
}

转到build.gradle的mymodel。执行此任务是“成功”的:

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'.

但是没有创建jar。如果我注释掉includerename行,只需将现有的中间jar复制两个目录即可(并且NO-SOURCE从输出中消失),这就是我知道路径正确的方式。项目中的任何地方都没有classes.jar或其他任何带有最近时间戳记的jar。 我确实为mymodule找到了gradle任务“类”,但是它在成功执行时似乎并没有创建任何文件。

0 个答案:

没有答案