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