如何创建Java Gradle项目


120

如何从命令行创建Java Gradle项目?

它应该创建标准的Maven文件夹布局,如下图所示。

使用Eclipse插件创建的Java Gradle

更新:

.1。在http://www.gradle.org/docs/current/userguide/tutorial_java_projects.html中, 我需要创建build.gradle两行文件

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插件的对应字符串:=)
Beezer

Answers:


283

要创建Java项目,请执行以下操作:创建一个新项目目录,跳入该目录并执行

gradle init --type java-library

源文件夹和Gradle构建文件(包括包装)将被构建。


8
如其他答案所述,可以在以下位置找到有关构建初始化插件的文档: gradle.org/docs/current/userguide/build_init_plugin.html
Paul

这很好。@Mike在eclipse中,在此之前,必须将java项目转换为gradle项目。然后,如何自动设置源文件夹?
verystrongjoe 2015年

一件事。您必须具有包含init插件的Gradle版本。花了我很多时间弄清楚我的gradle出了什么问题。
ЮрійМазуревич

6
使用mkdir -p src/{main,test}/{java,resources}
Ortwin Angermeier

1
gradle wrapper --gradle-version 4.1 init --type java-library如果要指定包装器版本
deFreitas

19

摇摇欲坠的家伙正在尽力解决所有(y)我们的问题;-)。他们最近(从1.9版本开始)增加了一个新功能(孵化中):“ build init”插件。

请参阅:构建初始化插件文档


13

不幸的是,您不能用一个命令来完成它。该功能存在一个未解决的问题

目前,您必须手动执行此操作。如果您需要经常执行此操作,则可以创建一个自定义的gradle插件,或者只是准备自己的项目框架,并在需要时进行复制。

编辑

上述JIRA问题已于2013年5月1日解决,并已在1.7-rc-1中修复。可以使用Build Init插件上的文档,尽管它表明此功能仍处于“孵化”生命周期中。


12

最后,在比较完所有解决方案之后,我认为从build.gradle文件开始可以很方便。

Gradle发行版中samples包含很多示例文件夹,并且有gradle init --type basiccomand参见第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"
}

结果如下。

概观

可以在没有任何适用于Eclipse的Gradle插件
或适用于(Enide)Gradle的Eclipse,Jetty,Android替代Gradle Integration for Eclipse的情况下使用

编辑框


1

如果您使用的是Eclipse,那么对于现有项目(具有build.gradle文件),您只需键入即可gradle eclipse为该项目创建所有Eclipse文件和文件夹。

它会为您处理所有依赖关系,并将它们也添加到Eclipse中的项目资源路径中。


2
这不会创建源文件夹。如果之前未创建它们,则Eclipse配置将不完整。不过,非常感谢,在步骤.3中添加了
Paul Verest 2014年

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

在此处输入图片说明

在具有Java版本的Windows 10上:

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.