如何创buildJava gradle项目

如何从命令行创buildJava Gradle项目?

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

用Eclipse插件创建的Java Gradle

更新:

0.1。 从http://www.gradle.org/docs/current/userguide/tutorial_java_projects.html我需要创build2行文件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 (或相应的string到其他IDE插件configuration)

那么有办法用一个命令呢?

要创build一个Java项目:创build一个新的项目目录,跳到它并执行

 gradle init --type java-library 

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

gradle家伙正在尽全力解决所有(y)我们的问题;-)。 他们最近(自1.9)添加了一个新的function(孵化):“build立初始化”插件
请参阅: http : //www.gradle.org/docs/current/userguide/build_init_plugin.html

不幸的是,你不能在一个命令。 这个function有一个公开的问题 。

目前您必须手动完成。 如果你经常需要这样做,你可以创build一个定制的gradle插件 ,或者只准备你自己的项目框架,并在需要的时候复制它。

编辑

上面提到的JIRA问题已经在2013年5月1日解决了,并且是1.7-rc-1。 Build Init Plugin的文档是可用的,虽然它表明这个function仍处于“孵化”生命周期。

最后比较所有的解决scheme,我认为从build.gradle文件开始可以方便。

Gradle发行版包含很多示例的samples文件夹,并且有gradle init --type basic命令,参见第47章 gradle init --type basic 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 for Eclipse,Jetty,Android替代Eclipse的Gradle Integration

编辑框

如果你正在使用Eclipse,对于一个现有的项目(它有一个build.gradle文件),你可以简单地inputgradle eclipse ,它将为这个项目创build所有的Eclipse文件和文件夹。

它负责处理所有依赖关系,并将它们添加到Eclipse中的项目资源path中。

我可以在build.gradle使用groovy方法来处理它,以创build所有源文件夹的Java,资源和testing。 然后我将它设置为在gradle eclipse任务之前运行。

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

现在我们只需要一个命令就可以build立一个新的gradle Java EE项目。 我把这个例子放在GitHub上

我只是用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,也是日食的狂热粉丝,但是普通的帅哥,这意味着没有一个teste Neon.1是最简单的用例…导入一个gradle项目。 这不够好。 我正在切换到Intellij for gradle项目:

在这里输入图像说明