mirror of
https://gitee.com/jmix/cuba.git
synced 2024-11-30 18:27:56 +08:00
769 lines
24 KiB
Groovy
769 lines
24 KiB
Groovy
/*
|
|
* Copyright (c) 2008-2016 Haulmont.
|
|
*
|
|
* 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.
|
|
*
|
|
*/
|
|
|
|
buildscript {
|
|
ext.cubaVersion = '6.3-SNAPSHOT'
|
|
ext.cubaVersion = rootProject.hasProperty('buildVersion') ? rootProject['buildVersion'] : cubaVersion
|
|
|
|
println("CUBA Platform Version ${ext.cubaVersion}")
|
|
println("")
|
|
|
|
repositories {
|
|
mavenLocal()
|
|
maven {
|
|
credentials {
|
|
username System.getenv('HAULMONT_REPOSITORY_USER') ?: 'cuba'
|
|
password System.getenv('HAULMONT_REPOSITORY_PASSWORD') ?: 'cuba123'
|
|
}
|
|
url System.getenv('HAULMONT_REPOSITORY_URL') ?: 'https://repo.cuba-platform.com/content/groups/work'
|
|
}
|
|
}
|
|
dependencies {
|
|
classpath group: 'com.haulmont.gradle', name: 'cuba-plugin', version: cubaVersion
|
|
}
|
|
}
|
|
|
|
apply(plugin: 'base')
|
|
apply(plugin: 'maven')
|
|
apply(plugin: 'idea')
|
|
apply(plugin: 'cuba')
|
|
|
|
cuba {
|
|
artifact {
|
|
group = 'com.haulmont.cuba'
|
|
version = project.cubaVersion.replace('-SNAPSHOT', '')
|
|
isSnapshot = project.cubaVersion.endsWith('-SNAPSHOT')
|
|
}
|
|
|
|
ide {
|
|
vcs = 'Git'
|
|
copyright = '''Copyright (c) 2008-$today.year Haulmont.
|
|
|
|
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.'''
|
|
}
|
|
}
|
|
|
|
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 restApiModule = project(':cuba-rest-api')
|
|
def webAuthModule = project(':cuba-web-auth')
|
|
def webToolkitModule = project(':cuba-web-toolkit')
|
|
def webModule = project(':cuba-web')
|
|
|
|
def webModuleThemesModule = project(':cuba-web-themes')
|
|
def coreTestsModule = project(':cuba-core-tests')
|
|
def clientTestsModule = project(':cuba-client-tests')
|
|
|
|
apply from: "$rootProject.projectDir/lib.gradle"
|
|
|
|
def springVersion = '4.2.5.RELEASE'
|
|
def springSecurityVersion = '4.0.4.RELEASE'
|
|
|
|
def servletApi = 'org.apache.tomcat:tomcat-servlet-api:8.0.26'
|
|
def groovyArtifact = 'org.codehaus.groovy:groovy-all:2.4.4'
|
|
def poi = 'com.haulmont.thirdparty:poi:3.12.cuba.1'
|
|
def postgres = 'org.postgresql:postgresql:9.4-1201-jdbc41'
|
|
def hsqldb = 'org.hsqldb:hsqldb:2.3.3'
|
|
|
|
/* Shared web dependencies */
|
|
def commonsUpload = [group: 'commons-fileupload', name: 'commons-fileupload', version: '1.3.1']
|
|
|
|
configure([sharedLibModule, globalModule, coreModule, clientModule, guiModule,
|
|
webModule, desktopModule, portalModule, webAuthModule, restApiModule]) {
|
|
apply(plugin: 'java')
|
|
apply(plugin: 'idea')
|
|
apply(plugin: 'maven')
|
|
apply(plugin: 'checkstyle')
|
|
apply(plugin: 'findbugs')
|
|
apply(plugin: 'cuba')
|
|
|
|
dependencies {
|
|
compile('commons-logging:commons-logging:1.2')
|
|
compile(group: 'commons-lang', name: 'commons-lang', version: '2.6')
|
|
compile(group: 'commons-collections', name: 'commons-collections', version: '3.2.1')
|
|
compile('commons-io:commons-io:2.4')
|
|
compile('commons-codec:commons-codec:1.10')
|
|
compile('commons-cli:commons-cli:1.3.1')
|
|
compile('org.apache.commons:commons-pool2:2.4.2')
|
|
compile('org.apache.commons:commons-compress:1.9')
|
|
compile(group: 'dom4j', name: 'dom4j', version: '1.6.1')
|
|
compile('com.sun.mail:javax.mail:1.5.4')
|
|
compile('ch.qos.logback:logback-classic:1.1.3')
|
|
compile('org.slf4j:log4j-over-slf4j:1.7.12')
|
|
compile(group: 'org.perf4j', name: 'perf4j', version: '0.9.16')
|
|
compile('com.google.code.findbugs:jsr305:3.0.0')
|
|
compile('javax:javaee-api:7.0')
|
|
compile(groovyArtifact)
|
|
compile(group: 'antlr', name: 'antlr', version: '2.7.7')
|
|
compile(group: 'org.antlr', name: 'antlr-runtime', version: '3.5.2')
|
|
compile('com.google.guava:guava:18.0')
|
|
|
|
compile 'org.eclipse.persistence:javax.persistence:2.1.0'
|
|
compile 'org.eclipse.persistence:commonj.sdo:2.1.1'
|
|
compile 'org.glassfish:javax.json:1.0.4'
|
|
compile (eclipselink)
|
|
|
|
compile('org.freemarker:freemarker:2.3.23')
|
|
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)
|
|
|
|
compile(group: 'com.esotericsoftware', name: 'kryo-shaded', version: '3.0.3')
|
|
compile(group: 'de.javakaffee', name: 'kryo-serializers', version: '0.37') {
|
|
exclude(group: 'com.esotericsoftware', module: 'kryo')
|
|
}
|
|
|
|
testCompile('org.jmockit:jmockit:1.15')
|
|
testCompile('junit:junit:4.12')
|
|
|
|
findbugs 'com.google.code.findbugs:findbugs:3.0.1'
|
|
}
|
|
|
|
task sourceJar(type: Jar) {
|
|
from file('src')
|
|
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"
|
|
}
|
|
}
|
|
}
|
|
|
|
jar {
|
|
manifest {
|
|
attributes("Implementation-Version": cubaVersion)
|
|
}
|
|
}
|
|
}
|
|
|
|
// configure web toolkit modules
|
|
configure(webToolkitModule) {
|
|
apply(plugin: 'java')
|
|
apply(plugin: 'idea')
|
|
apply(plugin: 'maven')
|
|
apply(plugin: 'cuba')
|
|
|
|
task sourceJar(type: Jar) {
|
|
from file('src')
|
|
classifier = 'sources'
|
|
}
|
|
|
|
artifacts {
|
|
archives sourceJar
|
|
}
|
|
}
|
|
|
|
configure(sharedLibModule) {
|
|
dependencies {
|
|
jdbc(postgres)
|
|
jdbc(hsqldb)
|
|
}
|
|
}
|
|
|
|
configure(globalModule) {
|
|
dependencies {
|
|
compile(group: 'org.json', name: 'json', version: '20140107')
|
|
compile('com.google.code.gson:gson:2.5')
|
|
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)
|
|
|
|
task filterDummyEntities {
|
|
ext.srcFile = file('src/cuba-persistence.xml')
|
|
ext.dstDir = file("$buildDir/tmp/filtered")
|
|
ext.dstFile = new File(ext.dstDir, "cuba-persistence.xml")
|
|
inputs.file srcFile
|
|
outputs.file dstFile
|
|
doLast {
|
|
dstDir.mkdirs()
|
|
List lines = srcFile.readLines()
|
|
def result = lines.findAll{ !it.contains('.entity.dummy.') }.join('\n')
|
|
dstFile.write(result)
|
|
}
|
|
}
|
|
|
|
jar {
|
|
exclude '**/entity/dummy/*'
|
|
exclude { it.file == file("$buildDir/resources/main/cuba-persistence.xml") }
|
|
from "$buildDir/tmp/filtered"
|
|
|
|
manifest {
|
|
attributes('App-Component-Id': cuba.artifact.group)
|
|
attributes('App-Component-Version': cubaVersion)
|
|
}
|
|
}
|
|
jar.dependsOn filterDummyEntities
|
|
|
|
sourceJar {
|
|
exclude '**/entity/dummy/*'
|
|
exclude {
|
|
it.file.name == 'cuba-persistence.xml' && sourceSets.main.java.srcDirs.contains(it.file.parentFile)
|
|
}
|
|
from "$buildDir/tmp/filtered"
|
|
}
|
|
sourceJar.dependsOn filterDummyEntities
|
|
}
|
|
|
|
configure(coreModule) {
|
|
configurations {
|
|
dbscripts
|
|
}
|
|
|
|
dependencies {
|
|
compile(globalModule)
|
|
compile(sharedLibModule)
|
|
compile 'javax.validation:validation-api:1.1.0.Final'
|
|
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.ocpsoft.prettytime', name: 'prettytime-nlp', version: '3.2.5.Final')
|
|
compile('org.jgroups:jgroups:3.6.7.Final')
|
|
compile('org.aspectj:aspectjrt:1.8.6')
|
|
compile('org.aspectj:aspectjweaver:1.8.6')
|
|
compile('org.mybatis:mybatis:3.2.7')
|
|
compile('org.mybatis:mybatis-spring:1.2.3')
|
|
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
|
|
|
|
compile('org.jsoup:jsoup:1.8.3') // simplify version management for fts
|
|
compile('org.apache.httpcomponents:httpclient:4.5.2') // simplify version management for selenium
|
|
|
|
provided(servletApi)
|
|
|
|
jdbc(postgres)
|
|
jdbc(hsqldb)
|
|
|
|
testCompile('org.apache.commons:commons-dbcp2:2.1.1')
|
|
testRuntime(servletApi)
|
|
testRuntime(hsqldb)
|
|
testRuntime(postgres)
|
|
}
|
|
|
|
test {
|
|
scanForTestClasses = false
|
|
includes = ['**/*Test.class']
|
|
jvmArgs '-XX:-UseSplitVerifier'
|
|
}
|
|
|
|
assembleDbScripts {
|
|
moduleAlias = '10-cuba'
|
|
}
|
|
|
|
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(coreTestsModule) {
|
|
apply(plugin: 'java')
|
|
apply(plugin: 'maven')
|
|
apply(plugin: 'cuba')
|
|
|
|
buildDir = file('../build/core-tests')
|
|
|
|
sourceSets {
|
|
main {
|
|
java {
|
|
srcDir '.'
|
|
|
|
include 'com/haulmont/cuba/core/CubaTestCase.java'
|
|
include 'com/haulmont/cuba/testsupport/*.java'
|
|
include '*'
|
|
}
|
|
resources {
|
|
srcDir '.'
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
compile(coreModule)
|
|
compile('org.apache.commons:commons-dbcp2:2.1.1')
|
|
compile('org.jmockit:jmockit:1.15')
|
|
compile('junit:junit:4.12')
|
|
}
|
|
|
|
task sourceJar(type: Jar) {
|
|
from file('.')
|
|
include 'com/haulmont/cuba/core/CubaTestCase*.class'
|
|
include 'com/haulmont/cuba/core/CubaTestCase*.java'
|
|
include 'com/haulmont/cuba/testsupport/*'
|
|
include '*'
|
|
classifier = 'sources'
|
|
}
|
|
|
|
artifacts {
|
|
archives sourceJar
|
|
}
|
|
}
|
|
|
|
configure(clientModule) {
|
|
dependencies {
|
|
compile(globalModule)
|
|
compile('org.apache.httpcomponents:httpclient:4.5.2') // simplify version management for selenium
|
|
compile('org.jsoup:jsoup:1.8.3') // simplify version management for fts
|
|
}
|
|
}
|
|
|
|
configure(clientTestsModule) {
|
|
apply(plugin: 'java')
|
|
apply(plugin: 'maven')
|
|
apply(plugin: 'cuba')
|
|
|
|
buildDir = file('../build/client-tests')
|
|
|
|
sourceSets {
|
|
main {
|
|
java {
|
|
srcDir '.'
|
|
}
|
|
resources {
|
|
srcDir '.'
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
compile(clientModule)
|
|
compile('org.jmockit:jmockit:1.15')
|
|
compile('junit:junit:4.12')
|
|
}
|
|
|
|
task sourceJar(type: Jar) {
|
|
from file('.')
|
|
classifier = 'sources'
|
|
}
|
|
|
|
artifacts {
|
|
archives sourceJar
|
|
}
|
|
}
|
|
|
|
configure(guiModule) {
|
|
dependencies {
|
|
compile(clientModule)
|
|
compile(poi)
|
|
compile(groovyArtifact)
|
|
|
|
testCompile(clientModule.sourceSets.test.output)
|
|
}
|
|
|
|
task enhance(type: CubaEnhancing)
|
|
|
|
test {
|
|
scanForTestClasses = false
|
|
includes = ['**/*Test.class']
|
|
|
|
exclude 'com/haulmont/cuba/gui/components/*ComponentTest.class'
|
|
exclude 'com/haulmont/cuba/gui/components/*FieldTest.class'
|
|
}
|
|
}
|
|
|
|
configure(webModule) {
|
|
configurations {
|
|
themes
|
|
}
|
|
|
|
dependencies {
|
|
compile(sharedLibModule)
|
|
compile(guiModule)
|
|
compile(webAuthModule)
|
|
compile(restApiModule)
|
|
|
|
compile(commonsUpload)
|
|
compile(group: 'org.springframework', name: 'spring-webmvc', version: springVersion)
|
|
|
|
compile(vaadinPush) {
|
|
exclude(group: 'com.vaadin.external.google', module: 'guava')
|
|
}
|
|
compile(vaadinShared) {
|
|
exclude(group: 'com.vaadin.external.google', module: 'guava')
|
|
}
|
|
compile(group: 'com.vaadin.external.google', name: 'guava-vaadin-shaded', version: '16.0.1.vaadin1')
|
|
compile(vaadinServer) {
|
|
exclude(group: 'com.vaadin', module: 'vaadin-sass-compiler')
|
|
}
|
|
|
|
/* Vaadin addons */
|
|
compile(group: 'com.haulmont.thirdparty', name: 'popupbutton', version: '2.5.2.cuba.3')
|
|
compile(group: 'com.haulmont.thirdparty', name: 'aceeditor', version: '0.8.15')
|
|
compile(group: 'org.vaadin.addons', name: 'contextmenu', version: '4.5')
|
|
compile(group: 'org.vaadin.addons', name: 'dragdroplayouts', version: '1.2.2.cuba.3')
|
|
|
|
provided(servletApi)
|
|
|
|
themes(vaadinThemes)
|
|
|
|
testCompile(clientModule.sourceSets.test.output)
|
|
testCompile(guiModule.sourceSets.test.output)
|
|
testRuntime(servletApi)
|
|
}
|
|
|
|
task enhance(type: CubaEnhancing)
|
|
|
|
jar {
|
|
with copySpec {
|
|
from sourceSets.main.allJava
|
|
include "com/haulmont/cuba/web/toolkit/ui/client/**"
|
|
}
|
|
}
|
|
|
|
task buildScssThemes(type: CubaWebScssThemeCreation) {
|
|
themes = ['halo', 'havana']
|
|
// compress = true
|
|
// sprites = true
|
|
// cleanup = true
|
|
}
|
|
|
|
assemble.dependsOn buildScssThemes
|
|
|
|
task deployThemes(type: CubaDeployThemeTask, dependsOn: buildScssThemes) {
|
|
}
|
|
|
|
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 "${cuba.tomcat.dir}/webapps/cuba/VAADIN/themes/halo"
|
|
exclude '**/web.xml'
|
|
}
|
|
|
|
task buildHavana(type: CubaWebScssThemeCreation) {
|
|
themes = ['havana']
|
|
// compress = true
|
|
// sprites = true
|
|
// cleanup = true
|
|
}
|
|
|
|
task deployHavana(type: Copy, dependsOn: buildHavana) {
|
|
from file("$webModule.buildDir/web/VAADIN/themes/havana")
|
|
into "${cuba.tomcat.dir}/webapps/cuba/VAADIN/themes/havana"
|
|
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', 'cuba-rest-api')
|
|
}
|
|
}
|
|
|
|
configure(webModuleThemesModule) {
|
|
apply(plugin: 'java')
|
|
apply(plugin: 'maven')
|
|
apply(plugin: 'cuba')
|
|
|
|
buildDir = file('../build/scss-themes')
|
|
|
|
sourceSets {
|
|
main {
|
|
java {
|
|
srcDir '.'
|
|
}
|
|
resources {
|
|
srcDir '.'
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
compile(vaadinThemes)
|
|
}
|
|
}
|
|
|
|
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
|
|
}
|
|
|
|
provided(servletApi)
|
|
}
|
|
}
|
|
|
|
configure(webToolkitModule) {
|
|
dependencies {
|
|
compile(webModule)
|
|
compile(vaadinClient)
|
|
compile(vaadinCompiler)
|
|
|
|
runtime(servletApi)
|
|
}
|
|
|
|
task buildWidgetSet(type: CubaWidgetSetBuilding) {
|
|
widgetSetClass = 'com.haulmont.cuba.web.toolkit.ui.WidgetSet'
|
|
// Strict
|
|
strict = true
|
|
// Debug flags:
|
|
printCompilerClassPath = false
|
|
logLevel = 'INFO'
|
|
// Parallel thread count
|
|
workers = 2
|
|
|
|
// Performance and widgetset size:
|
|
style = 'PRETTY' // 'OBF' or 'PRETTY' or 'DETAILED'
|
|
disableCastChecking = false
|
|
optimize = 9
|
|
draft = false
|
|
|
|
// Compiler JVM
|
|
xmx = '-Xmx512m'
|
|
xss = '-Xss8m'
|
|
xxMPS = '-XX:MaxPermSize=256m'
|
|
}
|
|
|
|
task buildDebugWidgetSet(type: CubaWidgetSetBuilding) {
|
|
widgetSetsDir = "$project.buildDir/web-debug/VAADIN/widgetsets"
|
|
widgetSetClass = 'com.haulmont.cuba.web.toolkit.ui.WidgetSet'
|
|
// Performance and widgetset size:
|
|
style = 'PRETTY'
|
|
}
|
|
|
|
task debugWidgetSet(type: CubaWidgetSetDebug) {
|
|
widgetSetClass = 'com.haulmont.cuba.web.toolkit.ui.WidgetSet'
|
|
}
|
|
|
|
jar {
|
|
from sourceSets.main.allJava
|
|
}
|
|
|
|
task webArchive(dependsOn: buildWidgetSet, type: Zip) {
|
|
from file("$buildDir/web")
|
|
classifier = 'web'
|
|
}
|
|
|
|
task webDebugArchive(dependsOn: buildDebugWidgetSet, type: Zip) {
|
|
from file("$buildDir/web-debug")
|
|
classifier = 'debug'
|
|
}
|
|
|
|
artifacts {
|
|
archives webArchive
|
|
if (!cuba.artifact.isSnapshot) {
|
|
archives webDebugArchive
|
|
}
|
|
}
|
|
|
|
task deploy(dependsOn: buildWidgetSet) << {
|
|
delete {
|
|
"$cuba.tomcat.dir/webapps/cuba/VAADIN/widgetsets"
|
|
}
|
|
copy {
|
|
from "$buildDir/web"
|
|
into "$cuba.tomcat.dir/webapps/cuba"
|
|
}
|
|
}
|
|
|
|
task cleanWidgetSet(dependsOn: clean) {
|
|
}
|
|
}
|
|
|
|
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.fifesoft', name: 'rsyntaxtextarea', version: '2.5.6')
|
|
compile(group: 'com.haulmont.thirdparty', name: 'glazedlists', version: '1.9.20110801')
|
|
compile(group: 'com.haulmont.thirdparty', name: 'swingx-core', version: '1.6.5-1.cuba.0')
|
|
|
|
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(restApiModule) {
|
|
dependencies {
|
|
compile(globalModule)
|
|
compile(clientModule)
|
|
compile(sharedLibModule)
|
|
provided(servletApi)
|
|
compile(group: 'org.springframework', name: 'spring-webmvc', version: springVersion)
|
|
compile(group: 'org.springframework', name: 'spring-context-support', version: springVersion)
|
|
compile(group: 'org.json', name: 'json', version: '20140107')
|
|
compile(groovyArtifact)
|
|
|
|
testCompile(clientModule.sourceSets.test.output)
|
|
}
|
|
}
|
|
|
|
configure(portalModule) {
|
|
dependencies {
|
|
compile(globalModule)
|
|
compile(clientModule)
|
|
compile(sharedLibModule)
|
|
compile(restApiModule)
|
|
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.springframework', name: 'spring-context-support', version: springVersion)
|
|
compile(group: 'org.json', name: 'json', version: '20140107')
|
|
compile(groovyArtifact)
|
|
|
|
compile(group: 'org.springframework', name: 'spring-tx', version: springVersion)
|
|
compile(group: 'org.springframework', name: 'spring-jdbc', version: springVersion)
|
|
|
|
compile(group: 'org.thymeleaf', name: 'thymeleaf', version: '3.0.0.RELEASE')
|
|
compile(group: 'org.thymeleaf', name: 'thymeleaf-spring4', version: '3.0.0.RELEASE')
|
|
compile(group: 'org.thymeleaf.extras', name: 'thymeleaf-extras-springsecurity4', version: '3.0.0.RELEASE')
|
|
|
|
testCompile(clientModule.sourceSets.test.output)
|
|
}
|
|
|
|
test {
|
|
scanForTestClasses = false
|
|
includes = ['**/*Test.class']
|
|
}
|
|
}
|
|
|
|
task restart(dependsOn: ['stop', ':cuba-core:deploy', ':cuba-web:deploy', ':cuba-web-toolkit: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()
|
|
} |