Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can gradle create the java project directory structure?

Tags:

java

gradle

gradle 1.12
Fedora 20

I am using gradle for the first time for building my java programs. I am using emacs as I don't like using eclipse. Because I like to do everything on the cmd line.

Gradle expects to find your production source code under src/main/java and your test source code under src/test/java. In addition, any files under src/main/resources

I am wondering is there a command I can use in gradle to get it to automatically create this project structure?

I could write a script file, but before I do that I would like to know if gradle can do it.

Many thanks in advance,

like image 607
ant2009 Avatar asked Jun 18 '14 03:06

ant2009


2 Answers

There isn't currently a built-in way to create the directory structure, but gradle init will probably take care of this at some point.

UPDATE: This is now available via the Gradle init plugin. A sample usage is:

gradle init --type java-library
like image 122
Peter Niederwieser Avatar answered Nov 20 '22 06:11

Peter Niederwieser


You can use gradle-templates,

STEP 1 : add templates plugin to 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' 

STEP 2 : see tasks you need

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

STEP 3 : apply the task

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

BUILD SUCCESSFUL

Total time: 12.057 secs

STEP 4 : you can see the folder structure now

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

For more read https://github.com/townsfolk/gradle-templates#installation

like image 45
prayagupa Avatar answered Nov 20 '22 08:11

prayagupa