Android Gradle Система сборки: создать Jar Not Library
В настоящее время я работаю в eclipse. Я хочу перейти на Android Studio, но сначала мне нужно понять это: Как создать банку для моего проекта с использованием новой системы сборки Android?
Мой проект настроен как библиотека, но в проекте есть только 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
}
Я запускаю script как:
gradle clean jar
Когда я запускаю задачи, ничего не происходит... Почему? Что мне не хватает?
Обновление 2
Ниже представлен новый файл сборки gradle, который я использую. Обратите внимание на изменение версии gradle из-за последнего обновления Android-студии. Даже с простым 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
}
Ответы
Ответ 1
С более новыми версиями плагина 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
}
Ответ 2
Задача "jar", которую вы подразумеваете здесь, вводится java-плагином. вы можете применить плагин gradle java, используя
apply plugin:'java'
Посмотрите в главе о java-плагине в gradle userguide на http://www.gradle.org/docs/current/userguide/tutorial_java_projects.html#N103C6, чтобы получить дополнительную информацию о java-плагине.
веселит,
Рене