From 694e5d3fd9ed5b8f62d13bab09c44730bf0defa7 Mon Sep 17 00:00:00 2001 From: Li Yanhui Date: Sun, 17 Mar 2013 13:39:01 +0800 Subject: [PATCH 1/4] add gradle script to build spring-petclinic --- build.gradle | 142 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 build.gradle diff --git a/build.gradle b/build.gradle new file mode 100644 index 000000000..3b873edc6 --- /dev/null +++ b/build.gradle @@ -0,0 +1,142 @@ +apply plugin: 'java' +apply plugin: 'war' + +repositories { + mavenCentral() +} + +ext { + java_version = '1.6' + project_build_sourceEncoding = 'UTF-8' + project_reporting_outputEncoding = 'UTF-8' + spring_framework_version = '3.2.2.RELEASE' + spring_data_jpa_version = '1.3.0.RELEASE' + jsp_version = '2.2' + jstl_version = '1.2' + servlet_version = '2.5' + javax_el_version = '2.2' + jaxb_api_version = '2.2.7' + jaxb_impl_version = '2.2.7-b53' + hibernate_version = '4.1.9.Final' + hibernate_jpa_version = '1.0.1.Final' + validation_version = '1.0.0.GA' + hibernate_validator_version = '4.3.0.Final' + commons_dbcp_version = '1.4' + ehcache_version = '2.6.5' + hsqldb_version = '2.2.9' + aspectj_version = '1.7.2' + logback_version = '1.0.9' + log4j_version = '1.2.17' + slf4j_version = '1.7.2' + rome_version = '1.0' + junit_version = '4.11' + hamcrest_version = '1.3' + jodatime_hibernate_version = '1.3' + jodatime_jsptags_version = '1.1.1' + jodatime_version = '2.2' + jadira_usertype_core_version = '3.1.0.CR1' + webjars_bootstrap_version = '2.3.0' + webjars_jquery_ui_version = '1.9.2' + webjars_jquery_version = '1.9.0' + dandelion_datatables_version = '0.8.7' + mysql_version = '5.1.22' + tomcat_version = '7.0.11' +} + +buildscript { + repositories { + mavenCentral() + } + + dependencies { + classpath 'org.gradle.api.plugins:gradle-tomcat-plugin:0.9.7' + } +} + +apply plugin: 'tomcat' + +dependencies { + compile("org.jadira.usertype:usertype.core:${jadira_usertype_core_version}") + compile("javax.validation:validation-api:${validation_version}") + compile("javax.servlet:jstl:${jstl_version}") + compile("org.springframework.data:spring-data-jpa:${spring_data_jpa_version}") { + exclude group: 'org.springframework', module: '*' + } + compile("org.springframework:spring-jdbc:${spring_framework_version}") + compile("org.springframework:spring-aop:${spring_framework_version}") + compile("org.springframework:spring-webmvc:${spring_framework_version}") + compile("org.springframework:spring-tx:${spring_framework_version}") + compile("org.springframework:spring-context-support:${spring_framework_version}") { + exclude group: 'quartz', module: 'quartz' + } + compile("org.springframework:spring-orm:${spring_framework_version}") + compile("org.springframework:spring-oxm:${spring_framework_version}") { + exclude group: 'commons-lang', module: 'commons-lang' + } + compile("org.springframework:spring-jms:${spring_framework_version}") + compile("rome:rome:${rome_version}") + compile("joda-time:joda-time:${jodatime_version}") + compile("joda-time:joda-time-hibernate:${jodatime_hibernate_version}") + compile("joda-time:joda-time-jsptags:${jodatime_jsptags_version}") + runtime("org.hsqldb:hsqldb:${hsqldb_version}") + compile("javax.servlet.jsp.jstl:jstl-api:${jstl_version}") + compile("org.glassfish.web:jstl-impl:${jstl_version}") + compile("org.hibernate:hibernate-core:${hibernate_version}") { + exclude group: 'asm', module: 'asm-attrs' + } + compile("org.hibernate:hibernate-entitymanager:${hibernate_version}") + compile("org.hibernate.javax.persistence:hibernate-jpa-2.0-api:${hibernate_jpa_version}") + compile("org.hibernate:hibernate-validator:${hibernate_validator_version}") + compile("org.hibernate:hibernate-ehcache:${hibernate_version}") + compile("net.sf.ehcache:ehcache-core:${ehcache_version}") { + exclude group: 'commons-logging', module: 'commons-logging' + } + compile("org.webjars:bootstrap:${webjars_bootstrap_version}") + compile("org.webjars:jquery-ui:${webjars_jquery_ui_version}") + compile("org.webjars:jquery:${webjars_jquery_version}") + compile("org.aspectj:aspectjrt:${aspectj_version}") + compile("com.github.dandelion:datatables-jsp:${dandelion_datatables_version}") + compile("com.github.dandelion:datatables-export-itext:${dandelion_datatables_version}") + compile("com.github.dandelion:datatables-servlet2:${dandelion_datatables_version}") + + providedCompile("javax.el:el-api:${javax_el_version}") + providedCompile("javax.servlet:servlet-api:${servlet_version}") + providedCompile("javax.servlet.jsp:jsp-api:${jsp_version}") + providedCompile("javax.xml.bind:jaxb-api:${jaxb_api_version}") + providedCompile("com.sun.xml.bind:jaxb-impl:${jaxb_impl_version}") + + runtime("commons-dbcp:commons-dbcp:${commons_dbcp_version}") + runtime("org.slf4j:jcl-over-slf4j:${slf4j_version}") + runtime("org.slf4j:slf4j-api:${slf4j_version}") + runtime("org.slf4j:jul-to-slf4j:${slf4j_version}") + runtime("ch.qos.logback:logback-classic:${logback_version}") + runtime("ch.qos.logback:logback-core:${logback_version}") + runtime("org.aspectj:aspectjweaver:${aspectj_version}") + + testCompile("org.springframework:spring-test:${spring_framework_version}") + testCompile("junit:junit:${junit_version}") + testCompile("org.hamcrest:hamcrest-library:${hamcrest_version}") + testCompile("org.hamcrest:hamcrest-core:${hamcrest_version}") + + tomcat("org.apache.tomcat.embed:tomcat-embed-core:${tomcat_version}") + tomcat("org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcat_version}") + tomcat("org.apache.tomcat.embed:tomcat-embed-jasper:${tomcat_version}") { + exclude group: 'org.eclipse.jdt.core.compiler', module: 'ecj' + } +} + +sourceCompatibility = "${java_version}" +targetCompatibility = "${java_version}" + +processTestResources { + from(sourceSets.test.java.srcDirs) { + include '**/*.xml' + } +} + +war.baseName = 'petclinic' + +tomcatRun { + httpPort = 9966 + contextPath = 'petclinic' +} \ No newline at end of file From 3cc9f667b059e3fd9606b901863a9d7b5b5c0b22 Mon Sep 17 00:00:00 2001 From: Li Yanhui Date: Sun, 17 Mar 2013 13:58:28 +0800 Subject: [PATCH 2/4] apply compiler encoding --- .gitignore | 5 ++++- build.gradle | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index e6ded2a05..f61983c27 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,8 @@ +build target/* .settings/* .classpath .project - +.gradle +.idea +*.iml diff --git a/build.gradle b/build.gradle index 3b873edc6..c054d1e1f 100644 --- a/build.gradle +++ b/build.gradle @@ -127,6 +127,7 @@ dependencies { sourceCompatibility = "${java_version}" targetCompatibility = "${java_version}" +[compileJava, compileTestJava]*.options*.encoding = "${project_build_sourceEncoding}" processTestResources { from(sourceSets.test.java.srcDirs) { From 152f8f183f19205f88829583b6159b430e735769 Mon Sep 17 00:00:00 2001 From: Li Yanhui Date: Sun, 24 Mar 2013 17:55:48 +0800 Subject: [PATCH 3/4] add gradle command into README --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index a282f8cb2..b7a52f25f 100644 --- a/readme.md +++ b/readme.md @@ -6,7 +6,7 @@ spring-petclinic has been deployed here on cloudfoundry: http://spring-petclinic ## Running petclinic locally ``` git clone https://github.com/SpringSource/spring-petclinic.git - mvn tomcat7:run + mvn tomcat7:run or gradle tomcatRun ``` You can then access petclinic here: http://localhost:9966/petclinic/ From a30d074716faecc70290c23265d5a141591b783f Mon Sep 17 00:00:00 2001 From: Li Yanhui Date: Mon, 8 Apr 2013 15:54:17 +0800 Subject: [PATCH 4/4] group dependencies --- build.gradle | 113 +++++++++++++++++++++++++++++++++------------------ 1 file changed, 73 insertions(+), 40 deletions(-) diff --git a/build.gradle b/build.gradle index c054d1e1f..29f079086 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,6 @@ ext { java_version = '1.6' project_build_sourceEncoding = 'UTF-8' project_reporting_outputEncoding = 'UTF-8' - spring_framework_version = '3.2.2.RELEASE' spring_data_jpa_version = '1.3.0.RELEASE' jsp_version = '2.2' jstl_version = '1.2' @@ -55,49 +54,84 @@ buildscript { apply plugin: 'tomcat' +configurations.all { + resolutionStrategy { + eachDependency { details -> + if (!details.requested.version) { + if (details.requested.group == 'org.springframework') { + details.useVersion '3.2.2.RELEASE' + } + else if (details.requested.group == 'org.hibernate') { + details.useVersion '4.1.9.Final' + } + } + } + } +} + +configurations { + web + database + tools + date + spring + hibernate + log + + compile.extendsFrom spring, web, date, tools, hibernate + runtime.extendsFrom database, log +} + dependencies { - compile("org.jadira.usertype:usertype.core:${jadira_usertype_core_version}") - compile("javax.validation:validation-api:${validation_version}") - compile("javax.servlet:jstl:${jstl_version}") - compile("org.springframework.data:spring-data-jpa:${spring_data_jpa_version}") { + spring("org.springframework.data:spring-data-jpa:${spring_data_jpa_version}") { exclude group: 'org.springframework', module: '*' } - compile("org.springframework:spring-jdbc:${spring_framework_version}") - compile("org.springframework:spring-aop:${spring_framework_version}") - compile("org.springframework:spring-webmvc:${spring_framework_version}") - compile("org.springframework:spring-tx:${spring_framework_version}") - compile("org.springframework:spring-context-support:${spring_framework_version}") { + + spring("org.springframework:spring-jdbc") + spring("org.springframework:spring-aop") + spring("org.springframework:spring-webmvc") + spring("org.springframework:spring-tx") + spring("org.springframework:spring-context-support") { exclude group: 'quartz', module: 'quartz' } - compile("org.springframework:spring-orm:${spring_framework_version}") - compile("org.springframework:spring-oxm:${spring_framework_version}") { + spring("org.springframework:spring-orm") + spring("org.springframework:spring-oxm") { exclude group: 'commons-lang', module: 'commons-lang' } - compile("org.springframework:spring-jms:${spring_framework_version}") - compile("rome:rome:${rome_version}") - compile("joda-time:joda-time:${jodatime_version}") - compile("joda-time:joda-time-hibernate:${jodatime_hibernate_version}") - compile("joda-time:joda-time-jsptags:${jodatime_jsptags_version}") - runtime("org.hsqldb:hsqldb:${hsqldb_version}") - compile("javax.servlet.jsp.jstl:jstl-api:${jstl_version}") - compile("org.glassfish.web:jstl-impl:${jstl_version}") - compile("org.hibernate:hibernate-core:${hibernate_version}") { + spring("org.springframework:spring-jms") + + hibernate("org.hibernate:hibernate-core") { exclude group: 'asm', module: 'asm-attrs' } - compile("org.hibernate:hibernate-entitymanager:${hibernate_version}") - compile("org.hibernate.javax.persistence:hibernate-jpa-2.0-api:${hibernate_jpa_version}") - compile("org.hibernate:hibernate-validator:${hibernate_validator_version}") - compile("org.hibernate:hibernate-ehcache:${hibernate_version}") - compile("net.sf.ehcache:ehcache-core:${ehcache_version}") { + hibernate("org.hibernate:hibernate-entitymanager") + hibernate("org.hibernate.javax.persistence:hibernate-jpa-2.0-api:${hibernate_jpa_version}") + hibernate("org.hibernate:hibernate-validator:${hibernate_validator_version}") + hibernate("org.hibernate:hibernate-ehcache") + + web("javax.validation:validation-api:${validation_version}") + web("javax.servlet:jstl:${jstl_version}") + web("javax.servlet.jsp.jstl:jstl-api:${jstl_version}") + web("org.glassfish.web:jstl-impl:${jstl_version}") + web("com.github.dandelion:datatables-jsp:${dandelion_datatables_version}") + web("com.github.dandelion:datatables-export-itext:${dandelion_datatables_version}") + web("com.github.dandelion:datatables-servlet2:${dandelion_datatables_version}") + + tools("rome:rome:${rome_version}") + tools("net.sf.ehcache:ehcache-core:${ehcache_version}") { exclude group: 'commons-logging', module: 'commons-logging' } - compile("org.webjars:bootstrap:${webjars_bootstrap_version}") - compile("org.webjars:jquery-ui:${webjars_jquery_ui_version}") - compile("org.webjars:jquery:${webjars_jquery_version}") - compile("org.aspectj:aspectjrt:${aspectj_version}") - compile("com.github.dandelion:datatables-jsp:${dandelion_datatables_version}") - compile("com.github.dandelion:datatables-export-itext:${dandelion_datatables_version}") - compile("com.github.dandelion:datatables-servlet2:${dandelion_datatables_version}") + tools("org.webjars:bootstrap:${webjars_bootstrap_version}") + tools("org.webjars:jquery-ui:${webjars_jquery_ui_version}") + tools("org.webjars:jquery:${webjars_jquery_version}") + tools("org.aspectj:aspectjrt:${aspectj_version}") + + date("org.jadira.usertype:usertype.core:${jadira_usertype_core_version}") + date("joda-time:joda-time:${jodatime_version}") + date("joda-time:joda-time-hibernate:${jodatime_hibernate_version}") + date("joda-time:joda-time-jsptags:${jodatime_jsptags_version}") + + database("org.hsqldb:hsqldb:${hsqldb_version}") + database("commons-dbcp:commons-dbcp:${commons_dbcp_version}") providedCompile("javax.el:el-api:${javax_el_version}") providedCompile("javax.servlet:servlet-api:${servlet_version}") @@ -105,15 +139,14 @@ dependencies { providedCompile("javax.xml.bind:jaxb-api:${jaxb_api_version}") providedCompile("com.sun.xml.bind:jaxb-impl:${jaxb_impl_version}") - runtime("commons-dbcp:commons-dbcp:${commons_dbcp_version}") - runtime("org.slf4j:jcl-over-slf4j:${slf4j_version}") - runtime("org.slf4j:slf4j-api:${slf4j_version}") - runtime("org.slf4j:jul-to-slf4j:${slf4j_version}") - runtime("ch.qos.logback:logback-classic:${logback_version}") - runtime("ch.qos.logback:logback-core:${logback_version}") + log("org.slf4j:jcl-over-slf4j:${slf4j_version}") + log("org.slf4j:slf4j-api:${slf4j_version}") + log("org.slf4j:jul-to-slf4j:${slf4j_version}") + log("ch.qos.logback:logback-classic:${logback_version}") + log("ch.qos.logback:logback-core:${logback_version}") runtime("org.aspectj:aspectjweaver:${aspectj_version}") - testCompile("org.springframework:spring-test:${spring_framework_version}") + testCompile("org.springframework:spring-test") testCompile("junit:junit:${junit_version}") testCompile("org.hamcrest:hamcrest-library:${hamcrest_version}") testCompile("org.hamcrest:hamcrest-core:${hamcrest_version}")