Як створити проект Java gradle


120

Як створити проект Java Gradle з командного рядка?

Він повинен створити стандартний макет папки Maven, як на малюнку нижче.

Java Gradle створений за допомогою плагіна Eclipse

ОНОВЛЕННЯ:

.1. З http://www.gradle.org/docs/current/userguide/tutorial_java_projects.html мені потрібно створити файл build.gradleз 2 рядків

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

.2. Додайте до build.gradleзавдання нижче, ніж виконайтеgradle create-dirs

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

.3. Потім запустіть gradle eclipse(або відповідний рядок до іншого налаштованого плагіна IDE)

То чи існує це в одній команді?


1
Хтось знає еквівалент скелету проекту IntelliJ Java?
Beezer

Я думаю, що відповідь яскраво вище ...._ або відповідна рядок для іншого плагіну IDE configured_: =)
Beezer

Відповіді:


283

Щоб створити проект Java: створіть новий каталог проектів, перескочіть у нього та виконайте

gradle init --type java-library

Будуть створені папки вихідних файлів та файл збірки Gradle (включаючи обгортку).


8
Як уже згадувалося в інших відповідях, документація на складання ініціалізації плагіна можна знайти тут: gradle.org/docs/current/userguide/build_init_plugin.html
Paul

це дуже добре. @Mike У затемненні, перш ніж це зробити, проект java повинен бути перетворений на проект gradle. Потім, як я можу автоматично встановити вихідні папки?
verystrongjoe

Одна важлива річ. У вас повинна бути версія Gradle з включеним плагіном init. Знадобилось у мене багато часу, щоб зрозуміти, що з моїм градусом не так.
Юрій Мазуревич

6
Використанняmkdir -p src/{main,test}/{java,resources}
Ortwin Angermeier

1
gradle wrapper --gradle-version 4.1 init --type java-libraryЯкщо ви хочете вказати версію обгортки
deFreitas


13

На жаль, ви не можете зробити це в одній команді. Існує відкрите питання для самої функції .

В даний час вам доведеться зробити це вручну. Якщо вам потрібно це робити часто, ви можете створити спеціальний плагін gradle , або просто підготувати власний скелет проекту та скопіювати його за потреби.

EDIT

Згадане вище питання JIRA було вирішено станом на 1 травня 2013 року та закріплено в 1.7-rc-1. Документація на плагін Build Init доступна, хоча це вказує на те, що ця функція все ще знаходиться в "інкубаційному" життєвому циклі.


12

Нарешті, порівнявши все рішення, я думаю, що починати з build.gradleфайлу може бути зручно.

Розподіл Gradle містить samplesпапку з великою кількістю прикладів, і є gradle init --type basicкоманда, див. Розділ 47. Побудова 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 for Eclipse

редактор


1

Якщо ви використовуєте Eclipse, для існуючого проекту (який має build.gradleфайл) ви можете просто ввести, gradle eclipseякий створить усі файли та папки Eclipse для цього проекту.

Він піклується про всі залежності для вас і додає їх до шляху ресурсів проекту в Eclipse.


2
Це не створює вихідні папки. Якщо вони не були створені раніше, конфігурації Eclipse не будуть заповнені. Тим не менш, велике спасибі, додане як крок .3
Пол Верест

1

Я міг би впоратися з цим методом groovy, 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 та величезного шанувальника затемнень, але звичайні чуваки, це означає НІ ОДНЕ тесте Neon.1 для найпростіших випадків використання ... імпортувати проект Gradle. Це недостатньо добре. Я переходжу на Intellij для проектів на рівні gradle:

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


1
Питання: Як створити проект Java Gradle з командного рядка?
Пол Верест

У чому полягає проблема корисності в цьому контексті Павла? Це в тому ж контексті. Отже, чому б не показати, що eclipse наразі має проблеми з імпортом.
Beezer
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.