Author: jdonnerstag Date: Tue May 3 21:09:37 2011 New Revision: 1099248 URL: http://svn.apache.org/viewvc?rev=1099248&view=rev Log: experimental gradle build files
Added: wicket/trunk/build.gradle wicket/trunk/settings.gradle Added: wicket/trunk/build.gradle URL: http://svn.apache.org/viewvc/wicket/trunk/build.gradle?rev=1099248&view=auto ============================================================================== --- wicket/trunk/build.gradle (added) +++ wicket/trunk/build.gradle Tue May 3 21:09:37 2011 @@ -0,0 +1,204 @@ +// ---------------------------------------------------------------------------- +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You 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. +// ---------------------------------------------------------------------------- +// Wicket Gradle build file +// +// @author Juergen Donnerstag +// ---------------------------------------------------------------------------- + +// A convenience method that calls the dependsOn method of the parent project +// for every child project (not every sub project). It declares an execution +// dependency on all children. +dependsOnChildren() + +// For testing purposes +/* +def localReleaseRepo = new File("${System.properties.'user.home'}/local-gradle-repository/release").toURL().toString() +def localSnapshotRepo = new File("${System.properties.'user.home'}/local-gradle-repository/snapshot").toURL().toString() +*/ + +// The root project is like a container and the subprojects method iterates +// over the elements of this container - the projects in this instance, but +// not deep subprojects - and injects the specified configuration. This way +// we can easily define some common dependencies +subprojects { prj -> + apply plugin: 'java' + apply plugin: 'maven' + // apply plugin: 'code-quality' + // apply plugin: 'project-reports' + + // Wicket Maven group and version + group = 'org.apache.wicket' + version = '1.5' + if(!System.properties.'release') { + version = version + '-SNAPSHOT' + } + + /* + gradle.taskGraph.whenReady {taskGraph -> + if (taskGraph.hasTask(':release')) { + version = '1.5' + } else { + version = '1.5-SNAPSHOT' + } + } + */ + + // Subproject "wicket" is only used to build the uber jars. No need to have eclipse project files + if (prj.name != "wicket") { + apply plugin: 'eclipse' + apply plugin: 'idea' + + // We don't need / want the WTP/WST natures and facets + prj.eclipseProject.whenConfigured { p -> + p.natures.removeAll 'org.eclipse.wst.common.project.facet.core.nature', 'org.eclipse.wst.common.modulecore.ModuleCoreNature', 'org.eclipse.jem.workbench.JavaEMFNature' + + p.buildCommands.removeAll { it.name.startsWith('org.eclipse.wst.') } + } + + // No need to create .settings/org.eclipse.wst.* files either + prj.tasks.all { if(it.name.contains('eclipseWtp')) { it.enabled = false }} + + // org.eclipse.jdt.core.prefs is provided via SVN. No need for gradle to modify them + prj.tasks.all { if(it.name.contains('eclipseJdt')) { it.enabled = false }} + prj.tasks.all { if(it.name.contains('cleanEclipseJdt')) { it.enabled = false }} + } + + // Use maven output dir + setBuildDir 'target' + + sourceCompatibility = 1.5 + targetCompatibility = 1.5 + + compileJava.options.compilerArgs = ['-Xlint:unchecked', '-Xlint:deprecation', '-g'] + + // We have plenty of *.html, *.xml and *.properties files which we want to + // copy/forward, like we do for *.java files. + sourceSets.main.resources.srcDir 'src/main/java' + sourceSets.test.resources.srcDir 'src/test/java' + + task packageTests(type: Jar) { + from sourceSets.test.classes + classifier = 'tests' + } + + artifacts.archives packageTests + + task sourceJar(type: Jar) { from sourceSets.main.allSource; classifier = 'source' } + task javadocJar(type: Jar) { from javadoc.outputs.files; classifier = 'javadoc' } + artifacts { archives sourceJar, javadocJar } + + repositories { + mavenLocal() + mavenCentral() + + // Add the Apache snapshot maven repository + mavenRepo urls: ["http://repository.apache.org/snapshots"] + + // mavenRepo urls: localReleaseRepo + // mavenRepo urls: localSnapshotRepo + } + + dependencies { + compile "org.slf4j:slf4j-api:1.6.1" + testCompile "org.slf4j:slf4j-log4j12:1.6.1" + testCompile "org.slf4j:jcl-over-slf4j:1.6.1" + + compile("javax.servlet:servlet-api:2.5") { + // Not available in any maven repo + provided : true + } + + testCompile "junit:junit:4.8.2" + testCompile "org.mockito:mockito-all:1.8.5" + } + + // TODO Should this maven config be per module or wicket "root" only?? + configure(install.repositories.mavenInstaller) { + pom.project { + description = 'Wicket is a Java-based open source component web application framework.' + url = 'http://wicket.apache.org/' + inceptionYear = '2004' + + organization { + name 'Apache Software Foundation' + url 'http://apache.org' + } + + licenses { + license { + name 'The Apache Software License, Version 2.0' + url 'http://www.apache.org/licenses/LICENSE-2.0.txt' + distribution 'repo' + } + } + + issueManagement { + system 'jira' + url 'http://issues.apache.org/jira/browse/WICKET' + } + + ciManagement { + system 'hudson' + url 'https://hudson.apache.org/hudson/job/Apache%20Wicket%201.5.x/' + } + + scm { + connection 'scm:svn:http://svn.apache.org/repos/asf/wicket/releases/1.5-SNAPSHOT' + developerConnection 'scm:svn:https://svn.apache.org/repos/asf/wicket/releases/1.5-SNAPSHOT' + url 'http://svn.apache.org/viewvc/wicket/releases/1.5-SNAPSHOT' + } + + mailingLists { + mailingList { + name 'Wicket Announcements List' + post 'annou...@wicket.apache.org' + subscribe 'announce-subscr...@wicket.apache.org' + unsubscribe 'announce-unsubscr...@wicket.apache.org' + archive 'http://www.nabble.com/Wicket---Announce-f13975.html' + } + + mailingList { + name 'Wicket User List' + post 'us...@wicket.apache.org' + subscribe 'users-subscr...@wicket.apache.org' + unsubscribe 'users-unsubscr...@wicket.apache.org' + archive 'http://www.nabble.com/Wicket---User-f13976.html' + } + + mailingList { + name 'Wicket Development List' + post 'd...@wicket.apache.org' + subscribe 'dev-subscr...@wicket.apache.org' + unsubscribe 'dev-unsubscr...@wicket.apache.org' + archive 'http://www.nabble.com/Wicket---Dev-f13977.html' + } + + mailingList { + name 'Wicket commit List' + subscribe 'commits-subscr...@wicket.apache.org' + unsubscribe 'commits-unsubscr...@wicket.apache.org' + archive 'http://mail-archives.apache.org/mod_mbox/wicket-commits/' + } + } + + properties { + 'project.build.sourceEncoding' 'UTF-8' + 'project.reporting.outputEncoding' 'UTF-8' + } + } + } +} Added: wicket/trunk/settings.gradle URL: http://svn.apache.org/viewvc/wicket/trunk/settings.gradle?rev=1099248&view=auto ============================================================================== --- wicket/trunk/settings.gradle (added) +++ wicket/trunk/settings.gradle Tue May 3 21:09:37 2011 @@ -0,0 +1,2 @@ + +include 'wicket-util', 'wicket-request', 'wicket-core', 'wicket-datetime', 'wicket-devutils', 'wicket-extensions', 'wicket-ioc', 'wicket-spring', 'wicket-velocity', 'wicket-auth-roles', 'wicket-guice', 'wicket-jmx', 'wicket-objectsizeof-agent', 'wicket-examples', 'wicket-archetype-quickstart', 'wicket-threadtest', 'wicket'