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-плагине.

веселит,

Рене