build.gradle
apply plugin: 'java' apply plugin: 'groovy' apply plugin: 'eclipse' version = '1.0' repositories { mavenCentral() flatDir name: 'localRepository', dirs: 'lib' } dependencies { runtime group: 'log4j', name: 'log4j', version: '1.2.+' compile ':junit:4.0' } task hello << { println System.properties['msg'] ant.echo('Hello') } compileJava.dependsOn(hello)
gradle.properties
systemProp.http.proxyHost=myhost systemProp.http.proxyPort=8080 systemProp.http.proxyUser=userid systemProp.http.proxyPassword=password systemProp.msg
Project structure
gradle-project/src/main/java/MyJava.java src/main/resources/ src/main/groovy/MyGroovy.groovy src/test/java/MyJavaTest.java src/test/groovy/MyGroovy.grovy src/test/resources/ build.gradle gradle.properties /lib/junit-4.0.jar
Here, we use Java, Groovy, and Eclipse plugins. With Java plugin, the conventional project structure is defined as below.
src/main/java src/main/resources src/test/java src/test/resources
With Groovy plugin, the conventional project structure is defined as below.
src/main/groovy src/main/resources src/test/groovy src/test/resourcesAs you can see here, it's very easy to mix between Java and Groovy projects. Gradle also supports another language such as Scala.
To generate Eclipse project:
gradle eclipseTo clean the generated Eclipse project
gradle cleanEclipse
To build the project:
gradle buildThis will compile Java and Groovy files.
To clean the project:
gradle clean
As we can see here, it's pretty easy create a custom hello task and make it as a dependency of an existing compileJavaTask as shown in the example above. Because Gradle is based on Groovy, we can leverage on Groovy programming language and Groovy out of the box supports Ant.
To execute the individual task:
gradle hello
To view the list of available tasks:
gradle tasks
With Gradle, it's easy to mix dependency management between Maven and local repository as shown in the example above.
There are still so many things that Gradle can provide, but hopefully this simple tutorial is sufficient to get started with Gradle.
No comments:
Post a Comment