Skip to content

Commit

Permalink
ported to 2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
purplefox committed Feb 28, 2013
1 parent 29dd388 commit 07b7f9b
Show file tree
Hide file tree
Showing 13 changed files with 104 additions and 359 deletions.
17 changes: 15 additions & 2 deletions .gitignore
@@ -1,9 +1,22 @@
.classpath
.DS_Store
.gradle
.idea
.classpath
.project
.settings
module.iml
.yardoc
.yardopts
bin
build
target
out
*.iml
*.ipr
*.iws
test-output
Scratch.java
ScratchTest.java
test-results
test-tmp
*.class
mods
160 changes: 76 additions & 84 deletions build.gradle
@@ -1,107 +1,99 @@
apply from: "gradle/vertx.gradle"

/*
* Copyright 2012 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
Usage:
apply plugin: 'java'
./gradlew task_name
defaultTasks = ['assemble']
(or gradlew.bat task_name if you have the misfortune to have to use Windows)
sourceCompatibility = '1.7'
targetCompatibility = '1.7'
If no task name is specified then the default task 'assemble' is run
jar.enabled = false // We don't produce a jar
Task names are:
configurations {
provided
}
idea - generate a skeleton IntelliJ IDEA project
repositories {
maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
mavenCentral()
}
eclipse - generate a skeleton Eclipse IDE project
dependencies {
provided "org.vert-x:vertx-core:$vertxVersion"
provided "org.vert-x:vertx-platform:$vertxVersion"
assemble - builds the outputs, by default this is the module zip file. It can also include a jar file if produceJar
in gradle.properties is set to true. Outputs are created in build/libs.
if pullInDeps in gradle.properties is set to 'true' then the modules dependencies will be
automatically pulled into a nested mods directory inside the module during the build
testCompile "org.vert-x:vertx-lang-java:$vertxVersion"
testCompile "org.vert-x:vertx-lang-rhino:$vertxVersion"
testCompile( "org.vert-x:vertx-testframework:$vertxVersion" ) {
transitive = false
}
testCompile "org.mozilla:rhino:$rhinoVersion"
testCompile "junit:junit:$junitVersion"
}
copyMod - builds and copies the module to the local 'mods' directory so you can execute vertx runmod (etc)
directly from the command line
sourceSets {
main {
compileClasspath = compileClasspath + configurations.provided
}
}
modZip - creates the module zip into build/libs
task copyMod( type:Copy, dependsOn: 'classes' ) {
into "build/mod/$modulename-v$version"
from 'build/classes/main'
from 'src/main/conf'
into( 'lib' ) {
from configurations.compile
}
}
clean - cleans everything up
// Package into build/libs/mod.zip
task dist( type: Zip, dependsOn: 'copyMod' ) {
group = 'vert.x'
description = "Assembles a vert.x module in 'mod.zip' format"
destinationDir = project.file('build/libs')
archiveName = 'mod.zip'
from project.file("build/mod")
}
test - runs the tests. An nice html test report is created in build/reports/tests (index.html)
runMod - runs the module. This is similar to executing vertx runmod from the command line except that it does
not use the version of Vert.x installed and on the PATH to run it. Instead it uses the version of Vert.x
that the module was compiled and tested against.
task prepareVertxTest(type: Sync, dependsOn: 'copyMod' ) {
from 'build/mod'
into 'build/tmp/mod-test'
}
pullInDeps - pulls in all dependencies of the module into a nested module directory
test {
// Can't have the app on the vert.x classpath
classpath = files( classpath.findAll {
!( it.toString() ==~ /.+build\/(classes|resources)\/main$/ )
} )
uploadArchives - upload the module zip file (and jar if one has been created) to Nexus. You will need to
configure sonatypeUsername and sonatypePassword in ~/.gradle/gradle.properties.
// Some vert.x properties
systemProperty 'vertx.test.timeout', 15
systemProperty 'vertx.mods', "$projectDir/build/tmp/mod-test"
systemProperty 'vertx.version', "$project.version"
install - install any jars produced to the local Maven repository (.m2)
// Show output
testLogging.showStandardStreams = true
*/

// No idea why we need to depend on testClasses...
dependsOn << [ 'testClasses', 'copyMod', 'prepareVertxTest' ]
dependencies {
/*
Add your module jar dependencies here
E.g.
compile "com.foo:foo-lib:1.0.1" - for compile time deps - this will end up in your module too!
testCompile "com.foo:foo-lib:1.0.1" - for test time deps
provided "com.foo:foo-lib:1.0.1" - if you DON'T want it to be packaged in the module zip
*/
compile "io.netty:netty:$nettyVersion"
}

test {
/* Configure which tests are included
include 'org/foo/**'
exclude 'org/boo/**'
*/

task collectDeps(type: Copy) {
group = 'vert.x'
description = 'conveniently collect dependencies for other IDEs'
destinationDir = file("build/deps")
into("compile") {
from configurations.compile
}
into("test") {
from configurations.testCompile
}

/*
If you're uploading stuff to Maven, Gradle needs to generate a POM.
Please edit the details below.
*/
def configurePom(def pom) {
pom.project {
description 'Form Upload Module for Vert.x'
inceptionYear '2012'
packaging 'zip'
url 'https://github.com/vert-x/mod-form-upload'

developers {
developer {
id 'purplefox'
name 'Tim Fox'
// email 'developer email'
}
}

scm {
url 'https://github.com/vert-x/mod-form-upload.git'
}

licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
distribution 'repo'
}
}

properties {
setProperty('project.build.sourceEncoding', 'UTF8')
}
}
}
13 changes: 8 additions & 5 deletions gradle.properties
@@ -1,7 +1,10 @@
modulename=vertx.formupload
version=1.0
gradleVersion=1.1
vertxVersion=1.2.1.final
# Set to true if you want module dependencies to be pulled in and nested inside the module itself
pullInDeps=false

# Set to true if you want the build to output a jar as well as a module zip file
produceJar=false

gradleVersion=1.4
vertxVersion=2.0.0-SNAPSHOT
toolsVersion=1.0.0-SNAPSHOT
junitVersion=4.10
rhinoVersion=1.7R4
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
4 changes: 2 additions & 2 deletions gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
#Sat Jul 07 10:05:19 BST 2012
#Mon Jan 28 08:12:12 GMT 2013
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=http\://services.gradle.org/distributions/gradle-1.1-bin.zip
distributionUrl=http\://services.gradle.org/distributions/gradle-1.4-bin.zip

0 comments on commit 07b7f9b

Please sign in to comment.