目前我在eclipse工作。我想迁移到Android Studio,但我需要先解决这个问题:如何使用新的Android构建系统为我的项目创建一个jar?
我的项目设置为库,但项目中只有java文件。我不需要或想要将其导出为库。我想将文件导出为.jar,以便可以轻松地将其放入另一个项目中。
更新
这是我的gradle文件。 我无法添加行apply plugin java
,因为它与android插件不兼容。 jar任务已包含在android插件中。
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
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 sourceSets.main.java
}
我正在运行脚本:
gradle clean jar
当我执行任务时,没有任何反应......为什么?我错过了什么?
更新2
下面是我正在使用的新gradle构建文件。请注意由于android studio的最新更新而导致的gradle版本更改。即使使用简单的clean build
,我也会收到此错误:Project directory '<my_workspace_path>\Core2Project\build.gradle' is not a directory.
此错误仅发生在构建工作室中。不是我从IDE运行时。我也遇到了另一个项目的同样问题。事实证明,当我指定要在构建工作室中使用的文件名时,我会收到此错误。
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
}
答案 0 :(得分:17)
使用较新版本的gradle和android gradle插件,您只需将以下内容添加到build.gradle
:
task jar(type: Jar) {
from android.sourceSets.main.java.srcDirs
}
并运行gradle clean compileReleaseJava jar
在旧版本的gradle插件中,您的sourceSets
元素需要位于android
内:
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
sourceSets {
main {
java {
srcDir 'src/main/java'
}
}
}
}
然后,您的jar
任务需要引用android.sourceSets
:
task jar(type: Jar) {
from android.sourceSets.main.java
}
答案 1 :(得分:-2)
这里的'jar'任务是由java插件引入的。您可以使用
应用gradle java插件apply plugin:'java'
在http://www.gradle.org/docs/current/userguide/tutorial_java_projects.html#N103C6的gradle用户指南中查看有关java插件的章节,以获取有关java插件的更多信息。
欢呼声,
勒