Java gradle projesi nasıl oluşturulur


120

Komut satırından Java Gradle projesi nasıl oluşturulur?

Aşağıdaki resimdeki gibi standart maven klasör düzeni oluşturmalıdır .

Eclipse eklentisiyle oluşturulan Java Gradle

GÜNCELLEME:

0,1. Gönderen http://www.gradle.org/docs/current/userguide/tutorial_java_projects.html Ben dosyası oluşturmak için gereken build.gradle2 çizgilerle

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

0,2. Yürütmek build.gradleyerine aşağıdaki göreve ekleyingradle create-dirs

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

0,3. O zaman koşgradle eclipse (veya yapılandırılan diğer IDE eklentisine karşılık gelen dizeyi)

Peki bunu tek komutla yapmanın bir yolu var mı?


1
IntelliJ java proje iskeletinin eşdeğerini bilen var mı?
Beezer

Cevabın göze batan bir şekilde yukarıda olduğunu düşünüyorum ...._ veya diğer IDE eklentisine karşılık gelen dizge yapılandırılmış_: =)
Beezer

Yanıtlar:


283

Bir Java projesi oluşturmak için: yeni bir proje dizini oluşturun, içine atlayın ve çalıştırın

gradle init --type java-library

Kaynak klasörler ve bir Gradle oluşturma dosyası (bir sarmalayıcı dahil) oluşturulacaktır.


8
Diğer yanıtlarda bahsedildiği gibi, build init eklentisine ilişkin dokümantasyon şurada
Paul

çok iyi. @Mike Eclipse'de bunu yapmadan önce java projesinin gradle projesine dönüştürülmesi gerekiyor. O halde kaynak klasörleri otomatik olarak nasıl ayarlayabilirim?
verystrongjoe

Önemli bir şey. Init eklentisi içeren Gradle sürümüne sahip olmalısınız. Derecemde neyin yanlış olduğunu anlamam çok zaman aldı.
Юрій Мазуревич

6
Kullanımmkdir -p src/{main,test}/{java,resources}
Ortwin Angermeier

1
gradle wrapper --gradle-version 4.1 init --type java-librarySarmalayıcı sürümünü belirtmek istiyorsanız
deFreitas

19

Sınıf öğrencileri tüm sorunlarımızı çözmek için ellerinden geleni yapıyorlar ;-). Yakın zamanda (1.9'dan beri) yeni bir özellik (kuluçka) eklediler: "build init" eklentisi.

Bakın: init eklenti belgeleri oluşturma


13

Ne yazık ki bunu tek bir komutla yapamazsınız. Çok özelliğin açık bir sorunu var .

Şu anda bunu elle yapmanız gerekecek. Sık sık yapmanız gerekiyorsa, özel bir gradle eklentisi oluşturabilirsiniz veya sadece kendi proje iskeletinizi hazırlayabilir ve gerektiğinde kopyalayabilirsiniz.

DÜZENLE

Yukarıda bahsedilen JIRA sorunu 1 Mayıs 2013 itibariyle çözüldü ve 1.7-rc-1'de düzeltildi. Derleme Başlatma Eklentisi ile ilgili belgeler mevcuttur, ancak bu özelliğin hala "kuluçka" yaşam döngüsünde olduğunu göstermektedir.


12

Sonunda tüm çözümleri karşılaştırdıktan sonra, build.gradle dosyadan uygun olacağını .

Gradle dağıtımında samplesbirçok örnek içeren klasör vardır ve komutlar vardır, gradle init --type basicbkz. Bölüm 47. Build Init Plugin . Ancak hepsinin biraz düzenlemeye ihtiyacı var.

Aşağıdaki şablonu da kullanabilir , ardından çalıştırabilirsinizgradle 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"
}

Sonuç aşağıdaki gibidir.

genel bakış

Bu, Eclipse için herhangi bir Gradle eklentisi olmadan
veya Eclipse için Gradle Integration for Eclipse'e alternatif (Enide) Gradle for Eclipse, Jetty, Android ile kullanılabilir

editbox


1

Eclipse kullanıyorsanız, mevcut bir proje için (bir build.gradledosyası olan) gradle eclipsebu proje için tüm Eclipse dosyalarını ve klasörlerini oluşturacak olanı yazabilirsiniz .

Sizin için tüm bağımlılıkları halleder ve bunları Eclipse'deki proje kaynak yoluna ekler.


2
Bu, kaynak klasörler oluşturmaz. Daha önce yaratılmamışlarsa, Eclipse yapılandırmaları dolu olmayacaktır. Yine de, çok teşekkür ederim, 3. adım olarak eklendi
Paul Verest

1

build.gradleJava, kaynaklar ve test için tüm kaynak klasörleri oluşturmak için harika bir yöntem kullanarak bunun üstesinden gelebilirim . Sonra gradle eclipsegörevden önce çalışacak şekilde ayarladım .

eclipseClasspath.doFirst {
    initSourceFolders()
}

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

Artık tek bir komutla tutulacak yeni bir gradle Java EE projesi kurabiliriz. Bu örneği GitHub'a koydum


-2

Eclipse Neon.1 ve Gradle ile denedim:

------------------------------------------------------------
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

görüntü açıklamasını buraya girin

Java Sürümüne sahip Windows 10'da:

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)

Ve Eclipse'de görebileceğiniz gibi sefil bir şekilde başarısız oldu. Ama Intellij'de süzülen bir kartal gibi yelken açtı ... Intellij'i bilmiyorum ve büyük bir tutulma hayranı, ama sıradan arkadaşlar, bu, en basit kullanım durumları için YOKTUR NE KADAR teste Neon.1 anlamına geliyor ... bir gradle projesini ithal etmek için. Yeterince iyi değil. Mezuniyet projeleri için Intellij'e geçiyorum:

görüntü açıklamasını buraya girin


1
Soru: Komut satırından Java Gradle projesi nasıl oluşturulur?
Paul Verest

Paul bu bağlamda yardımcı olmanın sorunu nedir? Aynı bağlamda. Öyleyse neden tutulmanın şu anda onu içe aktarmakta bir sorunu olduğunu göstermiyorsunuz?
Beezer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.