mirror of
https://gitee.com/jmix/cuba.git
synced 2024-12-05 04:38:10 +08:00
865 lines
27 KiB
Groovy
865 lines
27 KiB
Groovy
/*
|
|
* Copyright (c) 2008-2013 Haulmont. All rights reserved.
|
|
* Use is subject to license terms, see http://www.cuba-platform.com/license for details.
|
|
*/
|
|
|
|
allprojects {
|
|
ext.artifactGroup = 'com.haulmont.cuba'
|
|
ext.artifactVersion = cubaVersion.replace('-SNAPSHOT', '')
|
|
ext.isSnapshot = cubaVersion.endsWith('-SNAPSHOT')
|
|
ext.vcs = 'svn'
|
|
//ext.tomcatDir = rootDir.absolutePath + '/../tomcat'
|
|
}
|
|
|
|
buildscript {
|
|
ext.cubaVersion = '5.4-SNAPSHOT'
|
|
ext.cubaVersion = rootProject.hasProperty('buildVersion') ? rootProject['buildVersion'] : cubaVersion
|
|
|
|
println("CUBA Platform Version ${ext.cubaVersion}")
|
|
println("")
|
|
|
|
def docPluginVersion = '1.2.6'
|
|
def DOC_PLUGIN_VERSION = 'docPluginVersion'
|
|
docPluginVersion = rootProject.hasProperty(DOC_PLUGIN_VERSION) ? rootProject[DOC_PLUGIN_VERSION] : docPluginVersion
|
|
|
|
repositories {
|
|
mavenLocal()
|
|
maven {
|
|
credentials {
|
|
username System.getenv('HAULMONT_REPOSITORY_USER')
|
|
password System.getenv('HAULMONT_REPOSITORY_PASSWORD')
|
|
}
|
|
url "http://repository.haulmont.com:8587/nexus/content/groups/work"
|
|
}
|
|
}
|
|
dependencies {
|
|
classpath group: 'com.haulmont.gradle', name: 'cuba-plugin', version: cubaVersion
|
|
classpath group: 'com.haulmont.gradle', name: 'doc-plugin', version: docPluginVersion
|
|
}
|
|
}
|
|
|
|
apply(plugin: 'base')
|
|
apply(plugin: 'maven')
|
|
apply(plugin: 'idea')
|
|
apply(plugin: 'cuba')
|
|
apply(plugin: 'doc')
|
|
|
|
def sharedLibModule = project(':cuba-shared-lib')
|
|
def globalModule = project(':cuba-global')
|
|
def coreModule = project(':cuba-core')
|
|
def clientModule = project(':cuba-client')
|
|
def guiModule = project(':cuba-gui')
|
|
def desktopModule = project(':cuba-desktop')
|
|
def portalModule = project(':cuba-portal')
|
|
def webAuthModule = project(':cuba-web-auth')
|
|
def webToolkitModule = project(':cuba-web-toolkit')
|
|
def webModule = project(':cuba-web')
|
|
def webLegacyModule = project(':cuba-web6')
|
|
def webToolkitLegacyModule = project(':cuba-web6-toolkit')
|
|
|
|
def webModuleThemes = project(':cuba-web-themes')
|
|
def webLegacyModuleThemes = project(':cuba-web6-themes')
|
|
|
|
apply from: "$rootProject.projectDir/lib.gradle"
|
|
|
|
def vaadinLegacyVersion = '6.6.1.161'
|
|
def springVersion = '3.2.8.RELEASE'
|
|
def springSecurityVersion = '3.2.3.RELEASE'
|
|
|
|
def servletApi = [group: 'org.apache.tomcat', name: 'tomcat-servlet-api', version: '7.0.53']
|
|
def groovyArtifact = [group: 'org.codehaus.groovy', name: 'groovy-all', version: '2.1.6']
|
|
def asm = [group: 'asm', name: 'asm', version: '3.3.1']
|
|
def poi = [group: 'com.haulmont.thirdparty', name: 'poi', version: '3.9.20130515']
|
|
def postgres = [group: 'postgresql', name: 'postgresql', version: '9.1-901.jdbc4']
|
|
def hsqldb = [group: 'org.hsqldb', name: 'hsqldb', version: '2.2.9']
|
|
|
|
/* Legacy dependencies */
|
|
def vaadinLegacy = [group: 'com.haulmont.thirdparty', name: 'vaadin', version: vaadinLegacyVersion]
|
|
def popupButtonLegacy = [group: 'com.haulmont.thirdparty', name: 'popupbutton', version: '1.0.0']
|
|
def appletIntegrationLegacy = [group: 'com.haulmont.thirdparty', name: 'appletintegration', version: '1.1.4']
|
|
def gwtUser = [group: 'com.google.gwt', name: 'gwt-user', version: '2.3.0']
|
|
def gwtDev = [group: 'com.google.gwt', name: 'gwt-dev', version: '2.3.0']
|
|
def gwtServlets = [group: 'com.google.gwt', name: 'gwt-servlet', version: '2.3.0']
|
|
def validationApi = [group: 'javax.validation', name: 'validation-api', version: '1.0.0.GA']
|
|
|
|
/* Shared web dependencies */
|
|
def commonsUpload = [group: 'commons-fileupload', name: 'commons-fileupload', version: '1.2.2']
|
|
def casClient = [group: 'org.jasig.cas', name: 'cas-client-core', version: '3.1.10']
|
|
|
|
configure([sharedLibModule, globalModule, coreModule, clientModule, guiModule,
|
|
webModule, desktopModule, portalModule, webAuthModule, webLegacyModule]) {
|
|
apply(plugin: 'java')
|
|
apply(plugin: 'idea')
|
|
apply(plugin: 'maven')
|
|
apply(plugin: 'checkstyle')
|
|
apply(plugin: 'findbugs')
|
|
apply(plugin: 'cuba')
|
|
|
|
dependencies {
|
|
compile(group: 'commons-logging', name: 'commons-logging', version: '1.1.1')
|
|
compile(group: 'commons-lang', name: 'commons-lang', version: '2.6')
|
|
compile(group: 'commons-collections', name: 'commons-collections', version: '3.2.1')
|
|
compile(group: 'commons-io', name: 'commons-io', version: '1.4')
|
|
compile(group: 'commons-codec', name: 'commons-codec', version: '1.6')
|
|
compile(group: 'commons-cli', name: 'commons-cli', version: '1.2')
|
|
compile(group: 'commons-pool', name: 'commons-pool', version: '1.5.1')
|
|
compile(group: 'org.apache.commons', name: 'commons-compress', version: '1.1')
|
|
compile(group: 'dom4j', name: 'dom4j', version: '1.6.1')
|
|
compile(group: 'com.sun.mail', name: 'javax.mail', version: '1.5.1')
|
|
compile(group: 'log4j', name: 'log4j', version: '1.2.16')
|
|
compile(group: 'org.perf4j', name: 'perf4j', version: '0.9.16')
|
|
compile(group: 'com.google.code.findbugs', name: 'jsr305', version: '2.0.3')
|
|
compile(group: 'com.haulmont.thirdparty', name: 'javaee-api', version: '6.0.20091228')
|
|
compile(group: 'org.codehaus.groovy', name: 'groovy-all', version: '2.1.6')
|
|
compile(group: 'antlr', name: 'antlr', version: '2.7.7')
|
|
compile(asm)
|
|
compile(group: 'com.google.guava', name: 'guava', version: '16.0.1')
|
|
compile(group: 'org.apache.openjpa', name: 'openjpa', version: '2.3.0') {
|
|
exclude(group: 'junit', module: 'junit')
|
|
}
|
|
compile(group: 'org.antlr', name: 'antlr-runtime', version: '3.2')
|
|
compile(group: 'org.freemarker', name: 'freemarker', version: '2.3.16')
|
|
compile(group: 'aopalliance', name: 'aopalliance', version: '1.0')
|
|
compile(group: 'org.springframework', name: 'spring-core', version: springVersion)
|
|
compile(group: 'org.springframework', name: 'spring-beans', version: springVersion)
|
|
compile(group: 'org.springframework', name: 'spring-context', version: springVersion)
|
|
compile(group: 'org.springframework', name: 'spring-web', version: springVersion)
|
|
|
|
testCompile(group: 'org.jmockit', name: 'jmockit', version: '1.14')
|
|
testCompile(group: 'junit', name: 'junit', version: '4.5')
|
|
}
|
|
|
|
task sourceJar(type: Jar) {
|
|
from file('src')
|
|
exclude "com/haulmont/cuba/security/app/UserSessions.java"
|
|
classifier = 'sources'
|
|
}
|
|
|
|
artifacts {
|
|
archives sourceJar
|
|
}
|
|
|
|
String checkstyleConfigDir = "${rootProject.projectDir}/config/checkstyle"
|
|
checkstyle {
|
|
configFile = new File("${checkstyleConfigDir}/checkstyle.xml".toString())
|
|
configProperties = [
|
|
'checkstyleConfigDir' : checkstyleConfigDir
|
|
]
|
|
reportsDir = new File("${buildDir}/checkstyle".toString())
|
|
}
|
|
|
|
checkstyleMain << {
|
|
def checkstyleDir = "${project.buildDir}/checkstyle".toString()
|
|
ant.xslt('in': "$checkstyleDir/main.xml",
|
|
out: "$checkstyleDir/$project.name-checkstyle.html",
|
|
style: "$checkstyleConfigDir/checkstyle.xsl")
|
|
}
|
|
|
|
findbugs {
|
|
toolVersion = "2.0.3"
|
|
ignoreFailures = true
|
|
omitVisitors = ['FindDoubleCheck']
|
|
}
|
|
|
|
findbugsMain {
|
|
reports {
|
|
xml.enabled = false
|
|
html {
|
|
enabled = true
|
|
destination "${project.buildDir}/findbugs/$project.name-findbugs.html"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// configure web toolkit modules
|
|
configure([webToolkitModule, webToolkitLegacyModule]) {
|
|
apply(plugin: 'java')
|
|
apply(plugin: 'idea')
|
|
apply(plugin: 'maven')
|
|
apply(plugin: 'cuba')
|
|
|
|
task sourceJar(type: Jar) {
|
|
from file('src')
|
|
exclude "com/haulmont/cuba/security/app/UserSessions.java"
|
|
classifier = 'sources'
|
|
}
|
|
|
|
artifacts {
|
|
archives sourceJar
|
|
}
|
|
}
|
|
|
|
configure(sharedLibModule) {
|
|
dependencies {
|
|
jdbc(postgres)
|
|
jdbc(hsqldb)
|
|
}
|
|
}
|
|
|
|
configure(globalModule) {
|
|
dependencies {
|
|
provided(servletApi)
|
|
}
|
|
|
|
task generateReleaseTimestamp(type: CubaReleaseTimeStamp) {
|
|
releaseTimeStampPath = "$buildDir/classes/main/com/haulmont/cuba/core/global/release.timestamp"
|
|
releaseNumberPath = "$buildDir/classes/main/com/haulmont/cuba/core/global/release.number"
|
|
}
|
|
|
|
task enhance(type: CubaEnhancing) {
|
|
persistenceXml = "$globalModule.projectDir/src/cuba-persistence.xml"
|
|
}
|
|
|
|
task enhanceTransient(type: CubaEnhanceTransient) {
|
|
metadataXml = "$globalModule.projectDir/src/cuba-metadata.xml"
|
|
}
|
|
}
|
|
|
|
configure(coreModule) {
|
|
configurations {
|
|
dbscripts
|
|
}
|
|
|
|
dependencies {
|
|
compile(globalModule)
|
|
compile(sharedLibModule)
|
|
compile(group: 'com.haulmont.thirdparty', name: 'xstream', version: '1.4.2.20120702')
|
|
runtime(group: 'xpp3', name: 'xpp3_min', version: '1.1.4c')
|
|
runtime(group: 'xmlpull', name: 'xmlpull', version: '1.1.3.1')
|
|
compile(group: 'org.jgroups', name: 'jgroups', version: '3.6.1.Final')
|
|
compile(group: 'org.aspectj', name: 'aspectjrt', version: '1.6.12')
|
|
compile(group: 'org.aspectj', name: 'aspectjweaver', version: '1.6.12')
|
|
compile(group: 'org.mybatis', name: 'mybatis', version: '3.2.7')
|
|
compile(group: 'org.mybatis', name: 'mybatis-spring', version: '1.2.2')
|
|
compile(group: 'org.springframework', name: 'spring-context-support', version: springVersion)
|
|
compile(group: 'org.springframework', name: 'spring-orm', version: springVersion)
|
|
compile(group: 'org.springframework', name: 'spring-tx', version: springVersion)
|
|
compile(group: 'org.springframework', name: 'spring-webmvc', version: springVersion)
|
|
compile(poi) // POI is actually not required by core, but remains here to simplify dependencies for reports project
|
|
|
|
provided(servletApi)
|
|
|
|
jdbc(postgres)
|
|
jdbc(hsqldb)
|
|
|
|
testCompile(group: 'commons-dbcp', name: 'commons-dbcp', version: '1.4')
|
|
testRuntime(servletApi)
|
|
testRuntime(hsqldb)
|
|
testRuntime(postgres)
|
|
}
|
|
|
|
task recompileNoDebug(type: JavaCompile) {
|
|
source = sourceSets.main.java
|
|
classpath = sourceSets.main.compileClasspath
|
|
destinationDir = new File(buildDir, 'nodebug-classes')
|
|
options.debug = false
|
|
}
|
|
|
|
jar {
|
|
exclude { details ->
|
|
return details.file == new File("${sourceSets.main.output.classesDir}/com/haulmont/cuba/security/app/UserSessions.class")
|
|
}
|
|
from("$buildDir/nodebug-classes") {
|
|
include "com/haulmont/cuba/security/app/UserSessions.class"
|
|
}
|
|
}
|
|
|
|
jar.dependsOn(recompileNoDebug)
|
|
|
|
test {
|
|
scanForTestClasses = false
|
|
includes = ['**/*Test.class']
|
|
jvmArgs '-XX:-UseSplitVerifier'
|
|
}
|
|
|
|
task testsJar(dependsOn: testClasses, type: Jar) {
|
|
from sourceSets.test.output.classesDir
|
|
from sourceSets.test.output.resourcesDir
|
|
include 'com/haulmont/cuba/core/CubaTestCase*.class'
|
|
include 'com/haulmont/cuba/testsupport/*'
|
|
include '*'
|
|
includeEmptyDirs = false
|
|
classifier = 'tests'
|
|
}
|
|
|
|
assembleDbScripts {
|
|
moduleAlias = '10-cuba'
|
|
}
|
|
|
|
artifacts {
|
|
archives testsJar
|
|
}
|
|
|
|
task deploy(dependsOn: assemble, type: CubaDeployment) {
|
|
appName = 'cuba-core'
|
|
appJars('cuba-global', 'cuba-core')
|
|
}
|
|
|
|
def hsqlDbName = 'cubadb'
|
|
|
|
task startDb(description: 'Starts local HSQLDB server', type: CubaHsqlStart) {
|
|
dbName = hsqlDbName
|
|
}
|
|
|
|
task stopDb(description: 'Stops local HSQLDB server', type: CubaHsqlStop) {
|
|
dbName = hsqlDbName
|
|
}
|
|
|
|
task removeDb(description: 'Removes local HSQL database', type: Delete) {
|
|
delete new File("$rootProject.projectDir/data")
|
|
}
|
|
|
|
task killDb(description: 'Kill local HSQLDB server process running on port 9001', type: CubaKillProcess) {
|
|
port = 9001
|
|
}
|
|
|
|
task createDb(dependsOn: assembleDbScripts, description: 'Creates local HSQL database', type: CubaDbCreation) {
|
|
dbms = 'hsql'
|
|
dbName = hsqlDbName
|
|
dbUser = 'sa'
|
|
dbPassword = ''
|
|
}
|
|
}
|
|
|
|
configure(clientModule) {
|
|
dependencies {
|
|
compile(globalModule)
|
|
compile(group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.2.2')
|
|
}
|
|
|
|
task testsJar(dependsOn: testClasses, type: Jar) {
|
|
from sourceSets.test.output.classesDir
|
|
classifier = 'tests'
|
|
}
|
|
|
|
artifacts {
|
|
archives testsJar
|
|
}
|
|
}
|
|
|
|
configure(guiModule) {
|
|
apply(plugin: 'groovy')
|
|
|
|
sourceSets {
|
|
main {
|
|
groovy { srcDir 'src' }
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
compile(clientModule)
|
|
compile(poi)
|
|
compile(groovyArtifact)
|
|
compile(asm)
|
|
|
|
testCompile(clientModule.sourceSets.test.output)
|
|
}
|
|
|
|
task enhanceTransient(type: CubaEnhanceTransient) {
|
|
metadataXml = "$guiModule.projectDir/src/cuba-gui-metadata.xml"
|
|
}
|
|
|
|
test {
|
|
scanForTestClasses = false
|
|
includes = ['**/*Test.class']
|
|
|
|
exclude 'com/haulmont/cuba/gui/components/**'
|
|
}
|
|
}
|
|
|
|
configure(webModule) {
|
|
dependencies {
|
|
compile(sharedLibModule)
|
|
compile(guiModule)
|
|
compile(webAuthModule)
|
|
|
|
compile(commonsUpload)
|
|
compile(casClient)
|
|
compile(group: 'org.springframework', name: 'spring-webmvc', version: springVersion)
|
|
compile(group: 'org.json', name: 'json', version: '20090211')
|
|
|
|
compile(vaadinServer) {
|
|
exclude(group: 'com.vaadin', module: 'vaadin-sass-compiler')
|
|
}
|
|
// compile(group: 'com.vaadin', name: 'vaadin-themes', version: vaadinVersion)
|
|
/* Vaadin addons */
|
|
compile(group: 'com.haulmont.thirdparty', name: 'appletintegration', version: '1.2.10')
|
|
compile(group: 'com.haulmont.thirdparty', name: 'popupbutton', version: '2.2.1')
|
|
compile(group: 'org.vaadin.addons', name: 'aceeditor', version: '0.8.11')
|
|
|
|
provided(servletApi)
|
|
|
|
testCompile(clientModule.sourceSets.test.output)
|
|
testCompile(guiModule.sourceSets.test.output)
|
|
testRuntime(servletApi)
|
|
}
|
|
|
|
task enhanceTransient(type: CubaEnhanceTransient) {
|
|
metadataXml = "$webModule.projectDir/src/cuba-web-metadata.xml"
|
|
}
|
|
|
|
jar {
|
|
from sourceSets.main.allJava
|
|
}
|
|
|
|
task buildScssThemes(type: CubaWebScssThemeCreation) {
|
|
themes = ['halo', 'havana']
|
|
// compress = true
|
|
// sprites = true
|
|
// cleanup = true
|
|
}
|
|
|
|
task buildHalo(type: CubaWebScssThemeCreation) {
|
|
themes = ['halo']
|
|
// compress = true
|
|
// sprites = true
|
|
// cleanup = true
|
|
}
|
|
|
|
task deployHalo(type: Copy, dependsOn: buildHalo) {
|
|
from file("$webModule.buildDir/web/VAADIN/themes/halo")
|
|
into "${project.tomcatDir}/webapps/cuba/VAADIN/themes/halo"
|
|
exclude '**/web.xml'
|
|
}
|
|
|
|
def webOutDir = file("$buildDir/web")
|
|
task webArchive(dependsOn: buildScssThemes, type: Zip) {
|
|
from file('web')
|
|
from webOutDir
|
|
exclude '**/web.xml', '**/app.properties'
|
|
classifier = 'web'
|
|
}
|
|
|
|
artifacts {
|
|
archives webArchive
|
|
}
|
|
|
|
task deploy(dependsOn: assemble, type: CubaDeployment) {
|
|
appName = 'cuba'
|
|
appJars('cuba-global', 'cuba-client', 'cuba-gui', 'cuba-web', 'cuba-web-auth',
|
|
'vaadin-server', 'vaadin-shared-deps', 'vaadin-shared', 'vaadin-themes',
|
|
'aceeditor', 'popupbutton', 'appletintegration')
|
|
}
|
|
|
|
deploy << {
|
|
copy {
|
|
from "$buildDir/web"
|
|
into "$tomcatDir/webapps/cuba"
|
|
}
|
|
}
|
|
}
|
|
|
|
configure(webModuleThemes) {
|
|
apply(plugin: 'java')
|
|
apply(plugin: 'maven')
|
|
apply(plugin: 'cuba')
|
|
|
|
buildDir = file('../build/scss-themes')
|
|
|
|
sourceSets {
|
|
main {
|
|
java {
|
|
srcDir '.'
|
|
}
|
|
resources {
|
|
srcDir '.'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
configure(webAuthModule) {
|
|
dependencies {
|
|
compile(globalModule)
|
|
|
|
compile(group: 'org.springframework', name: 'spring-tx', version: springVersion)
|
|
compile(group: 'org.springframework.ldap', name: 'spring-ldap-core', version: '2.0.2.RELEASE') {
|
|
exclude(group: 'org.slf4j', module: 'jcl-over-slf4j') // removed because it defines its own Log4j LogFactory via JDK services mechanism
|
|
}
|
|
compile(group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.5')
|
|
|
|
provided(servletApi)
|
|
}
|
|
}
|
|
|
|
configure(webToolkitModule) {
|
|
dependencies {
|
|
compile(webModule)
|
|
|
|
compile(vaadinClient)
|
|
compile(vaadinCompiler)
|
|
|
|
// Uncomment for SuperDevMode debug
|
|
// compile(servletApi)
|
|
}
|
|
|
|
task buildWidgetSet(type: CubaWidgetSetBuilding) {
|
|
widgetSetClass = 'com.haulmont.cuba.web.toolkit.ui.WidgetSet'
|
|
// Debug flags:
|
|
// draft = true
|
|
// compilerArgs = ['-style': 'DETAILED']
|
|
|
|
// Performance and widgetset size:
|
|
// disableCastChecking = true
|
|
}
|
|
|
|
jar {
|
|
from sourceSets.main.allJava
|
|
}
|
|
|
|
task webArchive(dependsOn: buildWidgetSet, type: Zip) {
|
|
from file("$buildDir/web")
|
|
classifier = 'web'
|
|
}
|
|
|
|
artifacts {
|
|
archives webArchive
|
|
}
|
|
|
|
task deploy(dependsOn: buildWidgetSet) << {
|
|
delete {
|
|
"$tomcatDir/webapps/cuba/VAADIN/widgetsets"
|
|
}
|
|
copy {
|
|
from "$buildDir/web"
|
|
into "$tomcatDir/webapps/cuba"
|
|
}
|
|
}
|
|
}
|
|
|
|
configure(desktopModule) {
|
|
apply(plugin: 'application')
|
|
mainClassName = 'com.haulmont.cuba.desktop.App'
|
|
|
|
dependencies {
|
|
compile(guiModule)
|
|
compile(group: 'com.miglayout', name: 'miglayout-swing', version: '4.2')
|
|
compile(group: 'com.haulmont.thirdparty', name: 'glazedlists', version: '1.9.20110801')
|
|
compile(group: 'com.haulmont.thirdparty', name: 'swingx-core', version: '1.6.5-1')
|
|
|
|
assemble.dependsOn = [classes]
|
|
|
|
testCompile(clientModule.sourceSets.test.output)
|
|
testCompile(guiModule.sourceSets.test.output)
|
|
testRuntime(servletApi)
|
|
}
|
|
|
|
installApp {
|
|
into("$buildDir/app/" + applicationName)
|
|
}
|
|
|
|
task desktopInstall(dependsOn: assemble) << {
|
|
jar.execute()
|
|
startScripts.execute()
|
|
installApp.execute()
|
|
}
|
|
|
|
task desktopDist(dependsOn: assemble) << {
|
|
distZip.execute()
|
|
}
|
|
|
|
task desktopStart(dependsOn: desktopInstall) << {
|
|
run.execute()
|
|
}
|
|
}
|
|
|
|
configure(portalModule) {
|
|
apply(plugin: 'groovy')
|
|
|
|
sourceSets {
|
|
main {
|
|
groovy { srcDir 'src' }
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
compile(globalModule)
|
|
compile(clientModule)
|
|
compile(sharedLibModule)
|
|
provided(servletApi)
|
|
compile(group: 'org.springframework', name: 'spring-webmvc', version: springVersion)
|
|
compile(group: 'org.springframework.security', name: 'spring-security-core', version: springSecurityVersion)
|
|
compile(group: 'org.springframework.security', name: 'spring-security-web', version: springSecurityVersion)
|
|
compile(group: 'org.springframework.security', name: 'spring-security-config', version: springSecurityVersion)
|
|
compile(group: 'org.springframework.security', name: 'spring-security-taglibs', version: springSecurityVersion)
|
|
compile(group: 'org.json', name: 'json', version: '20090211')
|
|
compile(groovyArtifact)
|
|
compile(asm)
|
|
|
|
compile(group: 'org.springframework', name: 'spring-tx', version: springVersion)
|
|
compile(group: 'org.springframework', name: 'spring-jdbc', version: springVersion)
|
|
|
|
testCompile(clientModule.sourceSets.test.output)
|
|
}
|
|
|
|
test {
|
|
scanForTestClasses = false
|
|
includes = ['**/*Test.class']
|
|
}
|
|
}
|
|
|
|
configure(webLegacyModule) {
|
|
dependencies {
|
|
compile(sharedLibModule)
|
|
compile(guiModule)
|
|
compile(webAuthModule)
|
|
|
|
compile(commonsUpload)
|
|
compile(casClient)
|
|
|
|
compile(group: 'org.springframework', name: 'spring-webmvc', version: springVersion)
|
|
|
|
compile(vaadinLegacy)
|
|
compile(popupButtonLegacy)
|
|
compile(appletIntegrationLegacy)
|
|
|
|
provided(webToolkitLegacyModule)
|
|
provided(servletApi)
|
|
|
|
testCompile(clientModule.sourceSets.test.output)
|
|
testCompile(guiModule.sourceSets.test.output)
|
|
testRuntime(servletApi)
|
|
}
|
|
|
|
task enhanceTransient(type: CubaEnhanceTransient) {
|
|
metadataXml = "$webLegacyModule.projectDir/src/cuba-web-metadata.xml"
|
|
}
|
|
|
|
task buildScssThemes(type: CubaWebScssThemeCreation) {
|
|
themes = ['havana']
|
|
destDir = "${project.buildDir}/web/VAADIN/themes"
|
|
// compress = true
|
|
sprites = false
|
|
// cleanup = true
|
|
}
|
|
|
|
File webOutDir = new File("$buildDir/web")
|
|
task buildWidgetSet(dependsOn: compileJava, type: CubaVaadinLegacyBuilding) {
|
|
widgetSetsDir = "$webOutDir/VAADIN/widgetsets"
|
|
widgetSetModules = [webToolkitLegacyModule]
|
|
widgetSetClass = 'com.haulmont.cuba.toolkit.gwt.WidgetSet'
|
|
// jvmArgs('-Xdebug', '-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000')
|
|
// compilerArgs = ['-style' : 'PRETTY', '-localWorkers' : '2']
|
|
}
|
|
|
|
task webArchive(dependsOn: [buildWidgetSet, buildScssThemes], type: Zip) {
|
|
from file('web')
|
|
from webOutDir
|
|
exclude '**/web.xml', '**/app.properties'
|
|
classifier = 'web'
|
|
}
|
|
|
|
artifacts {
|
|
archives webArchive
|
|
}
|
|
|
|
task deploy(dependsOn: assemble, type: CubaDeployment) {
|
|
appName = 'cuba6'
|
|
appJars('cuba-global', 'cuba-client', 'cuba-gui', 'cuba-web-auth', 'cuba-web6',
|
|
'vaadin', 'popupbutton', 'appletintegration')
|
|
}
|
|
|
|
deploy << {
|
|
delete {
|
|
"$tomcatDir/webapps/cuba6/VAADIN/widgetsets"
|
|
}
|
|
copy {
|
|
from "$buildDir/web"
|
|
into "$tomcatDir/webapps/cuba6"
|
|
}
|
|
}
|
|
|
|
jar {
|
|
manifest {
|
|
attributes("Vaadin-Widgetsets": "com.haulmont.cuba.toolkit.gwt.WidgetSet")
|
|
}
|
|
}
|
|
}
|
|
|
|
configure(webLegacyModuleThemes) {
|
|
apply(plugin: 'java')
|
|
apply(plugin: 'maven')
|
|
apply(plugin: 'cuba')
|
|
|
|
buildDir = file('../build/scss-themes')
|
|
|
|
sourceSets {
|
|
main {
|
|
java {
|
|
srcDir '.'
|
|
}
|
|
resources {
|
|
srcDir '.'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
configure(webToolkitLegacyModule) {
|
|
dependencies {
|
|
compile(vaadinLegacy)
|
|
compile(popupButtonLegacy)
|
|
compile(appletIntegrationLegacy)
|
|
|
|
compile(gwtUser)
|
|
compile(gwtDev)
|
|
compile(gwtServlets)
|
|
compile(validationApi)
|
|
compile(validationApi + ['classifier' : 'sources'])
|
|
}
|
|
|
|
jar {
|
|
manifest {
|
|
attributes("Vaadin-Widgetsets": "com.haulmont.cuba.toolkit.gwt.WidgetSet")
|
|
}
|
|
}
|
|
}
|
|
|
|
task restart(dependsOn: ['stop', ':cuba-core:deploy', ':cuba-web:deploy'], description: 'Redeploys applications and restarts local Tomcat') << {
|
|
ant.waitfor(maxwait: 6, maxwaitunit: 'second', checkevery: 2, checkeveryunit: 'second') {
|
|
not {
|
|
socket(server: 'localhost', port: '8787')
|
|
}
|
|
}
|
|
start.execute()
|
|
}
|
|
|
|
/***************************** Documentation *****************************/
|
|
|
|
// These variables must be the project properties
|
|
ext.docSrcDir = file('doc/content')
|
|
ext.docToolsDir = file('doc/tools')
|
|
ext.docCssDir = new File(docToolsDir, 'css')
|
|
ext.docJsDir = new File(docToolsDir, 'js')
|
|
ext.docDstDir = new File("$buildDir/doc")
|
|
ext.docTmpDir = new File("$buildDir/tmp/doc")
|
|
|
|
task transformManual(type: TransformDocbook) {
|
|
sourceDir = new File(docSrcDir, 'manual/ru')
|
|
sourceFile = new File(sourceDir, 'manual.xml')
|
|
destFile = new File(docTmpDir, 'manual/ru/manual.xml')
|
|
classpath = configurations.buildDoc
|
|
}
|
|
|
|
task transformManualEn(type: TransformDocbook) {
|
|
sourceDir = new File(docSrcDir, 'manual/en')
|
|
sourceFile = new File(sourceDir, 'manual.xml')
|
|
destFile = new File(docTmpDir, 'manual/en/manual.xml')
|
|
classpath = configurations.buildDoc
|
|
}
|
|
|
|
/*task buildManualXhtml(type: Docbook2Xhtml, dependsOn: transformManual) {
|
|
source transformManual.destFile
|
|
destFile = new File(docTmpDir, 'manual-pdf/manual-pdf.html')
|
|
stylesheetName = 'pdf.xsl'
|
|
resources = fileTree(new File(docSrcDir, 'manual/ru')) {
|
|
include 'img/*.png'
|
|
include 'img/*.jpg'
|
|
}
|
|
resources += fileTree(docCssDir) {
|
|
include '*.css'
|
|
}
|
|
}*/
|
|
|
|
/*task buildManualPdf(type: Xhtml2Pdf, dependsOn: buildManualXhtml) {
|
|
inputs.dir docCssDir
|
|
sourceFile = buildManualXhtml.destFile
|
|
destFile = new File(docDstDir, 'manual/ru/pdf/manual.pdf')
|
|
classpath = configurations.buildDoc
|
|
fonts = zipTree(configurations.docFonts.singleFile)
|
|
}*/
|
|
|
|
def commonXslParameters = [
|
|
'toc.section.depth': '5',
|
|
'chunk.section.depth': '5',
|
|
'section.autolabel': '1',
|
|
'chapter.autolabel': '1',
|
|
'appendix.autolabel': 'A',
|
|
'admon.textlabel': 0
|
|
]
|
|
|
|
task buildManualWebHelp(type: DocBook2WebHelp, dependsOn: transformManual) {
|
|
sourceFile = transformManual.destFile
|
|
imagesDir = new File(transformManual.sourceDir, "img")
|
|
destDir = new File(docDstDir, "manual/ru/webhelp")
|
|
templateDir = new File(docToolsDir, "webhelp/template")
|
|
searchDir = new File(docToolsDir, "webhelp/search")
|
|
stylesheetName = 'webhelp.xsl'
|
|
brand = "CUBA"
|
|
language = "ru"
|
|
xslParameters = commonXslParameters
|
|
}
|
|
|
|
task buildManualWebHelpEn(type: DocBook2WebHelp, dependsOn: transformManualEn) {
|
|
sourceFile = transformManualEn.destFile
|
|
imagesDir = new File(transformManualEn.sourceDir, "img")
|
|
destDir = new File(docDstDir, "manual/en/webhelp")
|
|
templateDir = new File(docToolsDir, "webhelp/template")
|
|
searchDir = new File(docToolsDir, "webhelp/search")
|
|
stylesheetName = 'webhelp.xsl'
|
|
brand = "CUBA"
|
|
language = "en"
|
|
xslParameters = commonXslParameters
|
|
}
|
|
|
|
//task buildManualHtml(type: Docbook2Xhtml, dependsOn: transformManual) {
|
|
// source transformManual.destFile
|
|
// destDir = new File(docDstDir, 'manual/ru/html')
|
|
// stylesheetName = 'html.xsl'
|
|
// resources = fileTree(new File(docSrcDir, 'manual/ru')) {
|
|
// include 'img/*.png'
|
|
// include 'img/*.jpg'
|
|
// }
|
|
// resources += fileTree(docCssDir) {
|
|
// include '*.css'
|
|
// }
|
|
//}
|
|
|
|
task buildManualSingleHtml(type: Docbook2Xhtml, dependsOn: transformManual) {
|
|
source transformManual.destFile
|
|
destFile = new File(docDstDir, 'manual/ru/html-single/manual.html')
|
|
stylesheetName = 'html-single.xsl'
|
|
resources = fileTree(new File(docSrcDir, 'manual/ru')) {
|
|
include 'img/**/*.png'
|
|
include 'img/**/*.jpg'
|
|
}
|
|
resources += fileTree(docCssDir) {
|
|
include '*.css'
|
|
include '*.gif'
|
|
}
|
|
resources += fileTree(docJsDir) {
|
|
include '*.js'
|
|
}
|
|
}
|
|
|
|
task buildManualSingleHtmlEn(type: Docbook2Xhtml, dependsOn: transformManualEn) {
|
|
source transformManualEn.destFile
|
|
destFile = new File(docDstDir, 'manual/en/html-single/manual.html')
|
|
stylesheetName = 'html-single.xsl'
|
|
resources = fileTree(new File(docSrcDir, 'manual/en')) {
|
|
include 'img/**/*.png'
|
|
include 'img/**/*.jpg'
|
|
}
|
|
resources += fileTree(docCssDir) {
|
|
include '*.css'
|
|
include '*.gif'
|
|
}
|
|
resources += fileTree(docJsDir) {
|
|
include '*.js'
|
|
}
|
|
}
|
|
|
|
task buildDoc(type: Zip, description: 'Build documentation',
|
|
dependsOn: [buildManualSingleHtml, buildManualSingleHtmlEn, buildManualWebHelp, buildManualWebHelpEn]) {
|
|
from 'build/doc'
|
|
destinationDir = file('build/distributions')
|
|
baseName = 'cuba-doc'
|
|
version = artifactVersion + (isSnapshot ? '-SNAPSHOT' : '')
|
|
}
|
|
|
|
artifacts {
|
|
if (Boolean.valueOf(System.getProperty("buildDoc")))
|
|
archives buildDoc
|
|
}
|