Android Gradle构建系统:创建Jar而不是库
目前我在eclipse中工作。我想迁移到androidstudio,但是首先我需要弄清楚:如何使用新的Android构建系统为我的项目创建一个jar 我的项目设置为库,但是项目中只有java文件。我不需要也不想将此导出为库。我想将文件导出为.jar,这样就可以轻松地将其放入另一个项目中 更新 这是我的毕业档案。我无法添加行Android Gradle构建系统:创建Jar而不是库,jar,gradle,android-studio,Jar,Gradle,Android Studio,目前我在eclipse中工作。我想迁移到androidstudio,但是首先我需要弄清楚:如何使用新的Android构建系统为我的项目创建一个jar 我的项目设置为库,但是项目中只有java文件。我不需要也不想将此导出为库。我想将文件导出为.jar,这样就可以轻松地将其放入另一个项目中 更新 这是我的毕业档案。我无法添加行apply plugin java,因为它与android插件不兼容。jar任务已经包含在android插件中 我以以下方式运行脚本: gradle-clean-jar 当我运
apply plugin java
,因为它与android插件不兼容。jar任务已经包含在android插件中
我以以下方式运行脚本:
gradle-clean-jar
当我运行任务时,什么都没有发生。。。为什么?我错过了什么
更新2
下面是我正在使用的新gradle构建文件。请注意,由于android studio的最新更新,gradle版本发生了变化。即使使用简单的干净构建
我也会遇到这样的错误:项目目录'\Core2Project\build.gradle'不是目录。
此错误仅发生在构建工作室中。当我从IDE运行时就不会了。我在另一个项目中也遇到了同样的问题。事实证明,当我指定要在build studio中使用的文件名时,会出现此错误。
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
sourceSets {
main {
java {
srcDir 'src/main/java'
}
}
}
}
task jar(type: Jar) {
from android.sourceSets.main.java
}
您在这里指的“jar”任务是由java插件引入的。您可以使用
apply plugin:'java'
查看gradle用户指南中关于java插件的章节,以获得有关java插件的更多信息
干杯
Rene使用较新版本的gradle和android gradle插件,您只需将以下内容添加到您的
build.gradle
:
task jar(type: Jar) {
from android.sourceSets.main.java.srcDirs
}
然后运行gradlecleancipilereleaseJava jar
在较旧版本的gradle插件上,您的sourceset
元素需要位于android
中:
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
sourceSets {
main {
java {
srcDir 'src/main/java'
}
}
}
}
然后,您的jar
任务将需要引用android.sourceset
:
task jar(type: Jar) {
from android.sourceSets.main.java
}
这令人惊讶,因为java库肯定添加了一个jar任务。你能提供完整的rootproject构建文件吗。“使用”jar任务是什么意思?从命令行注入?很抱歉延迟,我已经用构建脚本更新了我的问题运行“gradle clean jar”时“什么都没发生”是什么意思?任务是否已执行并标记为最新?在build/libs中没有创建jar文件吗?我在构建脚本中注意到的一件事是主java源目录的配置。这是默认设置,我认为没有必要配置它。此外,您的代码片段只是在默认目录中添加了另一个目录。java插件无法针对导入的android类正确编译。我想说您是对的,但我无法再构建我的项目。仅仅一个简单的“干净构建”就给了我一个错误。错误路径中的
build.gradle
文件就是我运行任务所指向的文件。这里没有变化<代码>项目目录“\Core2Project\build.gradle”不是目录。您使用的是最新的gradle插件版本吗?你应该在classpath'com.android.tools.build:gradle:0.5.+'
now是的,我刚刚创建了一个新项目,并从gradle复制了我的src目录,android
和jar
位。我的构建脚本在模块的gradle文件中,而不是项目的gradle文件中。使用最新的gradle插件,我必须将Jar任务主体从part更改为:from fileTree(dir:'build/mediates/classes/release')
最近,我还运行了gradle clean compileReleaseJava jar
:从android.sourceset.main.java.srcDirs
task jar(type: Jar) {
from android.sourceSets.main.java
}