gradle可以创建java项目目录结构吗?

时间:2014-06-18 03:33:52

标签: java gradle

gradle 1.12
Fedora 20

我第一次使用gradle来构建我的java程序。我正在使用emacs,因为我不喜欢使用eclipse。因为我喜欢在cmd线上做所有事情。

Gradle希望在src / main / java下找到你的生产源代码,在src / test / java下找到你的测试源代码。另外,src / main / resources下的任何文件

我想知道是否有一个命令我可以在gradle中使用它来自动创建这个项目结构?

我可以写一个脚本文件,但在我这样做之前,我想知道gradle是否可以做到。

非常感谢,

2 个答案:

答案 0 :(得分:7)

目前还没有内置的方法来创建目录结构,但gradle init可能会在某些时候处理这​​个问题。

更新:现在可通过Gradle init plugin获取。 示例用法是:

gradle init --type java-library

答案 1 :(得分:3)

您可以使用gradle-templates

第1步:将模板插件添加到build.gradle

group 'com.hireartists.consumer.repository'
version '1.0-SNAPSHOT'

apply plugin: 'java'
apply plugin: 'idea'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    compile 'org.springframework:spring-webmvc:4.2.1.RELEASE'
    compile 'org.apache.kafka:kafka_2.10:0.8.2.2'
    compile 'javax.servlet:jstl:1.2'
    testCompile group: 'junit', name: 'junit', version: '4.11'
}

buildscript {
    repositories {
        maven {
            url 'http://dl.bintray.com/cjstehno/public'
        }
    }
    dependencies {
        classpath 'gradle-templates:gradle-templates:1.5'
    }
}

apply plugin:'templates' 

第2步:查看您需要的任务

./gradlew tasks

Template tasks
--------------
createGradlePlugin - Creates a new Gradle Plugin project in a new directory named after your project.
createGroovyClass - Creates a new Groovy class in the current project.
createGroovyProject - Creates a new Gradle Groovy project in a new directory named after your project.
createJavaClass - Creates a new Java class in the current project.
createJavaProject - Creates a new Gradle Java project in a new directory named after your project.
createScalaClass - Creates a new Scala class in the current project.
createScalaObject - Creates a new Scala object in the current project.
createScalaProject - Creates a new Gradle Scala project in a new directory named after your project.
createWebappProject - Creates a new Gradle Webapp project in a new directory named after your project.
exportAllTemplates - Exports all the default template files into the current directory.
exportGroovyTemplates - Exports the default groovy template files into the current directory.
exportJavaTemplates - Exports the default java template files into the current directory.
exportPluginTemplates - Exports the default plugin template files into the current directory.
exportScalaTemplates - Exports the default scala template files into the current directory.
exportWebappTemplates - Exports the default webapp template files into the current directory.
initGradlePlugin - Initializes a new Gradle Plugin project in the current directory.
initGroovyProject - Initializes a new Gradle Groovy project in the current directory.
initJavaProject - Initializes a new Gradle Java project in the current directory.
initScalaProject - Initializes a new Gradle Scala project in the current directory.
initWebappProject - Initializes a new Gradle Webapp project in the current directory.

第3步:应用任务

./gradlew initWebappProject
> Building 0% > :initWebappProject
templates> Use Jetty Plugin? (Y|n) [n] n
:initWebappProject

BUILD SUCCESSFUL

Total time: 12.057 secs

第4步:您现在可以看到文件夹结构

prayag-top:hire-artists-consumer prayagupd$ ll src/main/
total 0
drwxr-xr-x  2 prayagupd  staff   68 Oct 31 12:48 java
drwxr-xr-x  2 prayagupd  staff   68 Oct 31 12:48 resources
drwxr-xr-x  3 prayagupd  staff  102 Oct 31 12:48 webapp

更多阅读https://github.com/townsfolk/gradle-templates#installation