Cách tạo dự án Java Gradle


120

Cách tạo dự án Java Gradle từ dòng lệnh?

Nó sẽ tạo ra bố cục thư mục maven tiêu chuẩn như trong hình bên dưới.

Java Gradle được tạo bằng plugin Eclipse

CẬP NHẬT:

.1. Từ http://www.gradle.org/docs/current/userguide/tutorial_java_projects.html Tôi cần tạo tệp build.gradlecó 2 dòng

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

.2. Thêm vào build.gradlenhiệm vụ bên dưới, hơn là thực thigradle create-dirs

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

.3. Sau đó chạy gradle eclipse(hoặc chuỗi tương ứng với plugin IDE khác được định cấu hình)

Vì vậy, có cách nào để làm điều đó trong một lệnh?


1
Bất cứ ai biết tương đương cho khung dự án IntelliJ java?
Beezer

Tôi nghĩ rằng câu trả lời là rõ ràng ở trên ...._ hoặc chuỗi tương ứng với plugin IDE khác được cấu
hình_

Câu trả lời:


283

Để tạo một dự án Java: tạo một thư mục dự án mới, nhảy vào đó và thực thi

gradle init --type java-library

Các thư mục nguồn và tệp bản dựng Gradle (bao gồm cả trình bao bọc) sẽ được tạo.


8
Như đã đề cập trong các câu trả lời khác, bạn có thể tìm thấy tài liệu về plugin build init tại đây: gradle.org/docs/current/userguide/build_init_plugin.html
Paul

nó rất tốt. @Mike Trong nhật thực, trước khi thực hiện việc này, dự án java phải được chuyển đổi thành dự án gradle. Sau đó, làm cách nào để tôi có thể đặt các thư mục nguồn tự động?
verystrong,

Một điều quan trọng. Bạn phải có phiên bản Gradle với plugin init đi kèm. Tôi đã mất rất nhiều thời gian để tìm ra vấn đề với điểm tốt nghiệp của mình.
Юрій Мазуревич

6
Sử dụngmkdir -p src/{main,test}/{java,resources}
Ortwin Angermeier

1
gradle wrapper --gradle-version 4.1 init --type java-libraryNếu bạn muốn chỉ định phiên bản trình bao bọc
deFreitas

19

Các chàng trai đang cố gắng hết sức để giải quyết tất cả (y) vấn đề của chúng tôi ;-). Gần đây, họ (kể từ ngày 1.9) đã thêm một tính năng mới (đang ấp ủ): plugin "build init".

Xem: xây dựng tài liệu plugin init


13

Thật không may, bạn không thể làm điều đó trong một lệnh. Có một vấn đề mở đối với tính năng này .

Hiện tại bạn sẽ phải làm điều đó bằng tay. Nếu bạn cần làm điều đó thường xuyên, bạn có thể tạo một plugin gradle tùy chỉnh hoặc chỉ cần chuẩn bị khung dự án của riêng bạn và sao chép nó khi cần.

BIÊN TẬP

Sự cố JIRA được đề cập ở trên đã được giải quyết kể từ ngày 1 tháng 5 năm 2013 và được khắc phục trong 1.7-rc-1. Đã có tài liệu về Plugin Build Init , mặc dù nó chỉ ra rằng tính năng này vẫn đang trong vòng đời "ấp ủ".


12

Cuối cùng sau khi so sánh tất cả các giải pháp, tôi nghĩ rằng bắt đầu từ build.gradletệp có thể thuận tiện.

Bản phân phối Gradle có samplesthư mục với rất nhiều ví dụ và cógradle init --type basic xem Chương 47. Xây dựng Plugin Init . Nhưng tất cả đều cần chỉnh sửa.

Bạn cũng có thể sử dụng mẫu bên dưới, sau đó chạygradle 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"
}

Kết quả như dưới đây.

Tổng quat

Điều đó có thể được sử dụng mà không cần bất kỳ plugin Gradle nào cho Eclipse
hoặc với (Enide) Gradle cho Eclipse, Jetty, Android thay thế cho Tích hợp Gradle cho Eclipse

hộp chỉnh sửa


1

Nếu bạn đang sử dụng Eclipse, đối với một dự án hiện có (có build.gradletệp), bạn có thể chỉ cần nhậpgradle eclipse nó sẽ tạo tất cả các tệp và thư mục Eclipse cho dự án này.

Nó chăm sóc tất cả các phụ thuộc cho bạn và thêm chúng vào đường dẫn tài nguyên dự án trong Eclipse.


2
Điều này không tạo ra các thư mục nguồn. Nếu chúng chưa được tạo trước đó, cấu hình Eclipse sẽ không đầy đủ. Tuy nhiên, cảm ơn bạn rất nhiều, thêm vào như là bước .3
Paul Verest

1

Tôi có thể xử lý nó bằng cách sử dụng một phương pháp Groovy build.gradleđể tạo tất cả các thư mục nguồn cho java, tài nguyên và thử nghiệm. Sau đó, tôi đặt nó chạy trước gradle eclipsetác vụ.

eclipseClasspath.doFirst {
    initSourceFolders()
}

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

Bây giờ chúng ta có thể thiết lập một dự án Java EE gradle mới để làm nhật thực chỉ với một lệnh. Tôi đặt ví dụ này tại GitHub


-2

Tôi vừa thử với Eclipse Neon.1 và 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

nhập mô tả hình ảnh ở đây

Trên windows 10 với phiên bản 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)

Và nó đã thất bại thảm hại như bạn có thể thấy trong Eclipse. Nhưng chèo thuyền như một con đại bàng bay trong Intellij ... Tôi không biết Intellij, và một người hâm mộ cuồng nhiệt của nhật thực, nhưng những anh chàng bình thường, điều này có nghĩa là KHÔNG CÓ MỘT teste Neon.1 cho các trường hợp sử dụng đơn giản nhất ... để nhập một dự án gradle. Điều này là không đủ tốt. Tôi đang chuyển sang Intellij cho các dự án gradle:

nhập mô tả hình ảnh ở đây


1
Câu hỏi đã được đặt ra là: Làm thế nào để tạo dự án Java Gradle từ dòng lệnh?
Paul Verest

Paul có ích gì trong bối cảnh này? Nó ở trong cùng một bối cảnh. Vì vậy, tại sao không hiển thị rằng nhật thực hiện có vấn đề với việc nhập nó.
Beezer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.