Reputation: 2532
Currently I am working in eclipse. I want to migrate to Android Studio however I need to figure this out first: How do I create a jar for my project using the new android build system?
My Project is setup as a library however there are only java files in the project. I don't need or want to export this as a library. I want to export the files as a .jar so it can easily be dropped into another project.
Update
Here is my gradle file. I cannot add the line apply plugin java
because it is incompatible with the android plugin. The jar task is already included in the android plugin.
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
}
I'm running the script as:
gradle clean jar
When I run the tasks, nothing happens... Why? What am I missing?
Update 2
Below is the new gradle build file that I'm using. Notice the gradle version change due to android studio's latest update. Even with a simple clean build
I get this error: Project directory '<my_workspace_path>\Core2Project\build.gradle' is not a directory.
This error only happens in the build studio. Not when I run from the IDE. I've run into this same issue with another project as well. Turns out i'll get this error when I specify the file name to use in the 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
}
Upvotes: 20
Views: 12152
Reputation: 4073
With newer versions of gradle and the android gradle plugin, you just need to add the following to your build.gradle
:
task jar(type: Jar) {
from android.sourceSets.main.java.srcDirs
}
and run gradle clean compileReleaseJava jar
On older versions of the gradle plugin, your sourceSets
element needs be inside android
:
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
sourceSets {
main {
java {
srcDir 'src/main/java'
}
}
}
}
Then, your jar
task would need to reference android.sourceSets
:
task jar(type: Jar) {
from android.sourceSets.main.java
}
Upvotes: 17
Reputation: 28663
the 'jar' task you mean here is introduced by the java plugin. you can apply the gradle java plugin by using
apply plugin:'java'
Have a look in the chapter about the java plugin in the gradle userguide at http://www.gradle.org/docs/current/userguide/tutorial_java_projects.html#N103C6 to get more information about the java plugin.
cheers,
René
Upvotes: -2