Как создать проект Java Gradle

120

Как создать проект Java Gradle из командной строки?

Он должен создать стандартный макет папки maven, как на картинке ниже.

Java Gradle, созданный с помощью плагина Eclipse

ОБНОВИТЬ:

0,1. Из http://www.gradle.org/docs/current/userguide/tutorial_java_projects.html мне нужно создать файл build.gradleс двумя строками

apply plugin: 'java'
apply plugin: 'eclipse'

0,2. Добавьте в build.gradleзадачу ниже, чем выполнитеgradle create-dirs

task "create-dirs" << {
   sourceSets*.java.srcDirs*.each { it.mkdirs() }
   sourceSets*.resources.srcDirs*.each { it.mkdirs() }
}

0,3. Затем запустите gradle eclipse(или соответствующую строку для другого настроенного плагина IDE)

Так есть ли способ сделать это одной командой?

Пол Верест
источник
1
Кто-нибудь знает эквивалент для скелета проекта Java IntelliJ?
Beezer
Я думаю, что ответ явно указан выше ...._ или соответствующая строка для другого плагина IDE configure_: =)
Beezer

Ответы:

283

Чтобы создать проект Java: создайте новый каталог проекта, перейдите в него и выполните

gradle init --type java-library

Исходные папки и файл сборки Gradle (включая оболочку) будут созданы.

Майк
источник
8
Как упоминалось в других ответах, документацию по плагину инициализации сборки можно найти здесь: gradle.org/docs/current/userguide/build_init_plugin.html
Пол
это очень хорошо. @Mike В eclipse, прежде чем это сделать, java-проект должен быть преобразован в проект gradle. Тогда как я могу автоматически установить исходные папки?
verystrongjoe
Одна важная вещь. У вас должна быть версия Gradle с включенным плагином инициализации. Мне потребовалось много времени, чтобы понять, что не так с моим градиентом.
Юрій Мазуревич
6
Использованиеmkdir -p src/{main,test}/{java,resources}
Ортвин Ангермейер
1
gradle wrapper --gradle-version 4.1 init --type java-libraryЕсли вы хотите указать версию оболочки
deFreitas 09
19

Ребята из gradle делают все возможное, чтобы решить все наши проблемы ;-). Недавно (начиная с 1.9) они добавили новую функцию (инкубацию): плагин "build init".

См .: документацию плагина build init

roomsg
источник
13

К сожалению, вы не можете сделать это одной командой. Есть открытый вопрос по самой функции .

В настоящее время вам придется делать это вручную. Если вам нужно делать это часто, вы можете создать собственный плагин Gradle или просто подготовить собственный скелет проекта и скопировать его при необходимости.

РЕДАКТИРОВАТЬ

Упомянутая выше проблема JIRA была решена по состоянию на 1 мая 2013 г. и исправлена ​​в версии 1.7-rc-1. Документация по подключаемому модулю Build Init доступна, хотя в ней указано, что эта функция все еще находится в «инкубационном» жизненном цикле.

Rodion
источник
12

Наконец, после сравнения всех решений, я думаю, что начать с build.gradleфайла может быть удобно.

В дистрибутиве Gradle есть samplesпапка с множеством примеров, и есть gradle init --type basicкоманда, см. Главу 47. Build Init Plugin . Но все они нуждаются в редактировании.

Вы также можете использовать шаблон ниже, а затем запуститьgradle initSourceFolders eclipse

/*
* Nodeclipse/Enide build.gradle template for basic Java project
*   https://github.com/Nodeclipse/nodeclipse-1/blob/master/org.nodeclipse.enide.editors.gradle/docs/java/basic/build.gradle
* Initially asked on
*   http://stackoverflow.com/questions/14017364/how-to-create-java-gradle-project
* Usage
*   1. create folder (or general Eclipse project) and put this file inside
*   2. run `gradle initSourceFolders eclipse` or `gradle initSourceFolders idea`
* @author Paul Verest; 
* based on `gradle init --type basic`, that does not create source folders 
*/

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'

task initSourceFolders { // add << before { to prevent executing during configuration phase
   sourceSets*.java.srcDirs*.each { it.mkdirs() }
   sourceSets*.resources.srcDirs*.each { it.mkdirs() }
}

task wrapper(type: Wrapper) {
    gradleVersion = '1.11'
}

// In this section you declare where to find the dependencies of your project
repositories {
    // Use Maven Central for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    mavenCentral()
}

// In this section you declare the dependencies for your production and test code
dependencies {
    //compile fileTree(dir: 'libs', include: '*.jar')
    // The production code uses the SLF4J logging API at compile time
    //compile 'org.slf4j:slf4j-api:1.7.5'

    // Declare the dependency for your favourite test framework you want to use in your tests.
    // TestNG is also supported by the Gradle Test task. Just change the
    // testCompile dependency to testCompile 'org.testng:testng:6.8.1' and add
    // 'test.useTestNG()' to your build script.
    testCompile "junit:junit:4.11"
}

Результат как ниже.

обзор

Это можно использовать без какого-либо плагина Gradle для Eclipse
или с (Enide) Gradle для Eclipse, Jetty, Android, альтернативой Gradle Integration для Eclipse.

EditBox

Пол Верест
источник
1

Если вы используете Eclipse, для существующего проекта (у которого есть build.gradleфайл) вы можете просто ввести, gradle eclipseкоторый создаст все файлы и папки Eclipse для этого проекта.

Он позаботится обо всех зависимостях за вас и также добавит их в путь к ресурсам проекта в Eclipse.

Pelpotronic
источник
2
Это не создает исходные папки. Если они не были созданы раньше, конфиги Eclipse не будут заполнены. Тем не менее, большое спасибо, добавлено в качестве шага .3
Пол Верест
1

Я мог бы справиться с этим, используя отличный метод build.gradleдля создания всех исходных папок для java, ресурсов и теста. Затем я настроил его на запуск перед gradle eclipseзадачей.

eclipseClasspath.doFirst {
    initSourceFolders()
}

def initSourceFolders() {
    sourceSets*.java.srcDirs*.each { it.mkdirs() }
    sourceSets*.resources.srcDirs*.each { it.mkdirs() }
}

Теперь мы можем настроить новый проект Gradle Java EE для затмения с помощью только одной команды. Я разместил этот пример на GitHub

Эди Сегура
источник
-2

Я только что попробовал с Eclipse Neon.1 и Gradle:

------------------------------------------------------------
Gradle 3.2.1
------------------------------------------------------------

Build time:   2016-11-22 15:19:54 UTC
Revision:     83b485b914fd4f335ad0e66af9d14aad458d2cc5

Groovy:       2.4.7
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_112 (Oracle Corporation 25.112-b15)
OS:           Windows 10 10.0 amd64

введите описание изображения здесь

В Windows 10 с версией Java:

C:\FDriveKambiz\repo\gradle-gen-project>java -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)

И это с треском провалилось, как вы можете видеть в Eclipse. Но летал как парящий орел в Intellij ... Я не знаю Intellij и большой поклонник eclipse, но обычные парни, это не означает, что НИ ОДИН тестировал Neon.1 для простейших случаев использования ... для импорта проекта Gradle. Этого недостаточно. Я перехожу на Intellij для проектов gradle:

введите описание изображения здесь

Beezer
источник
1
Был вопрос: как создать проект Java Gradle из командной строки?
Пол Верест
В чем проблема с Павлом в этом контексте? Это в том же контексте. Итак, почему бы не показать, что у eclipse в настоящее время есть проблема с его импортом.
Beezer