/* * Copyright (c) 2021 * Zhengwu YU All rights reserved * 注意:本内容仅限于公司内部传阅,禁止外泄以及用于其他的商业目的 */ buildscript { ext.cubaVersion = '6.10.19' repositories { mavenLocal() maven { url 'https://repo.cuba-platform.com/content/groups/premium' credentials { username(rootProject.hasProperty('premiumRepoUser') ? rootProject['premiumRepoUser'] : System.getenv('CUBA_PREMIUM_USER')) password(rootProject.hasProperty('premiumRepoPass') ? rootProject['premiumRepoPass'] : System.getenv('CUBA_PREMIUM_PASSWORD')) } } mavenCentral() jcenter() maven { url 'http://maven.vaadin.com/vaadin-addons' } maven { url 'https://nexus.cuba-platform.cn/repository/cuba/' } } dependencies { classpath "com.haulmont.gradle:cuba-plugin:$cubaVersion" } } def modulePrefix = 'erp' def globalModule = project(":${modulePrefix}-global") def coreModule = project(":${modulePrefix}-core") def guiModule = project(":${modulePrefix}-gui") def webModule = project(":${modulePrefix}-web") def webThemesModule = project(":${modulePrefix}-web-themes") def webToolkitModule = project(":${modulePrefix}-web-toolkit") def servletApi = 'javax.servlet:javax.servlet-api:3.1.0' apply(plugin: 'idea') apply(plugin: 'cuba') cuba { artifact { group = 'com.esb.erp' version = '1.0' isSnapshot = true } tomcat { version = "8.5.64" dir = "$project.rootDir/deploy/tomcat" } ide { copyright = '''Copyright (c) $today.year Zhengwu YU All rights reserved 注意:本内容仅限于公司内部传阅,禁止外泄以及用于其他的商业目的''' // Copyright Notice for IDEA project classComment = '''/** * For Project ${PROJECT_NAME} * Created by ${USER} on ${DATE}. */''' vcs = 'Git' } } dependencies { appComponent("com.haulmont.cuba:cuba-global:$cubaVersion") appComponent("com.haulmont.reports:reports-global:$cubaVersion") appComponent("com.haulmont.fts:fts-global:$cubaVersion") appComponent("com.haulmont.charts:charts-global:$cubaVersion") appComponent("com.haulmont.bpm:bpm-global:$cubaVersion") appComponent("com.haulmont.addon.bi:cuba-bi-global:1.4.0") } def postgres = 'org.postgresql:postgresql:9.4.1212' configure([globalModule, coreModule, guiModule, webModule, webToolkitModule, webToolkitModule]) { apply(plugin: 'java') apply(plugin: 'maven') apply(plugin: 'idea') apply(plugin: 'cuba') dependencies { testCompile('junit:junit:4.12') } // task sourceJar(type: Jar) { // from file('src') // classifier = 'sources' // } // // artifacts { // archives sourceJar // } } configure(globalModule) { entitiesEnhancing { main { enabled = true } } } configure(coreModule) { configurations { jdbc dbscripts } dependencies { compile(globalModule) provided(servletApi) jdbc(postgres) testRuntime(postgres) jdbc('com.microsoft.sqlserver:mssql-jdbc:6.2.1.jre8') { exclude(group: 'com.microsoft.azure', module: 'azure-keyvault') } } task cleanConf(description: 'Cleans up conf directory') { doLast { def dir = new File(cuba.tomcat.dir, "/conf/${modulePrefix}-core") if (dir.isDirectory()) { ant.delete(includeemptydirs: true) { fileset(dir: dir, includes: '**/*', excludes: 'local.app.properties') } } } } task deploy(dependsOn: [assemble, cleanConf], type: CubaDeployment) { appName = "${modulePrefix}-core" appJars(modulePrefix + '-global', modulePrefix + '-core') } task createDb(dependsOn: assembleDbScripts, description: 'Creates local database', type: CubaDbCreation) { dbms = 'postgres' host = 'localhost' dbName = 'erp' dbUser = 'postgres' dbPassword = 'postgres' } task updateDb(dependsOn: assembleDbScripts, description: 'Updates local database', type: CubaDbUpdate) { dbms = 'postgres' host = 'localhost' dbName = 'erp' dbUser = 'postgres' dbPassword = 'postgres' } } configure(guiModule) { dependencies { compile(globalModule) } task deployConf(type: Copy) { from file('src') include "com/esb/erp/**" into "$cuba.tomcat.dir/conf/${modulePrefix}" } } configure(webModule) { configurations { webcontent } dependencies { provided(servletApi) compile(guiModule) compile('com.github.vaadin4qbanos:jsclipboard:1.0.3') } jar { with copySpec { from sourceSets.main.allJava include "com/esb/erp/web/toolkit/ui/client/**" } } jar { with copySpec { from sourceSets.main.allJava include "com/esb/erp/web/toolkit/ui/client/**" } } task webArchive(type: Zip) { from file("$buildDir/web") from file('web') classifier = 'web' } artifacts { archives webArchive } task deployConf(type: Copy) { from file('src') include "com/esb/erp/**" into "$cuba.tomcat.dir/conf/${modulePrefix}" } task clearMessagesCache(type: CubaClearMessagesCache) { appName = "${modulePrefix}" } deployConf.dependsOn clearMessagesCache task cleanConf(description: 'Cleans up conf directory') { doLast { def dir = new File(cuba.tomcat.dir, "/conf/${modulePrefix}") if (dir.isDirectory()) { ant.delete(includeemptydirs: true) { fileset(dir: dir, includes: '**/*', excludes: 'local.app.properties') } } } } task deploy(dependsOn: [assemble, cleanConf], type: CubaDeployment) { appName = "${modulePrefix}" appJars(modulePrefix + '-global', modulePrefix + '-gui', modulePrefix + '-web') } task buildScssThemes(type: CubaWebScssThemeCreation) task deployThemes(type: CubaDeployThemeTask, dependsOn: buildScssThemes) assemble.dependsOn buildScssThemes } configure(webThemesModule) { apply(plugin: 'java') apply(plugin: 'maven') apply(plugin: 'cuba') appModuleType = 'web-themes' buildDir = file('../build/scss-themes') sourceSets { main { java { srcDir '.' } resources { srcDir '.' } } } } configure(webToolkitModule) { dependencies { compile(webModule) } jar { from sourceSets.main.allJava } task buildWidgetSet(type: CubaWidgetSetBuilding) { widgetSetClass = 'com.esb.erp.web.toolkit.ui.AppWidgetSet' } task debugWidgetSet(type: CubaWidgetSetDebug) { widgetSetClass = 'com.esb.erp.web.toolkit.ui.AppWidgetSet' } task webArchive(dependsOn: buildWidgetSet, type: Zip) { from file("$buildDir/web") classifier = 'web' } artifacts { archives webArchive } task deploy(dependsOn: buildWidgetSet) { doLast { delete { "$cuba.tomcat.dir/webapps/${modulePrefix}/VAADIN/widgetsets" } copy { from "$buildDir/web" into "$cuba.tomcat.dir/webapps/${modulePrefix}" } } } } task undeploy(type: Delete, dependsOn: ":${modulePrefix}-web:cleanConf") { delete("$cuba.tomcat.dir/shared") delete("$cuba.tomcat.dir/webapps/${modulePrefix}-core") delete("$cuba.tomcat.dir/webapps/${modulePrefix}") } task restart(dependsOn: ['stop', ":${modulePrefix}-core:deploy", ":${modulePrefix}-web:deploy", ":${modulePrefix}-web-toolkit:deploy"], description: 'Redeploys applications and restarts local Tomcat') { doLast { ant.waitfor(maxwait: 6, maxwaitunit: 'second', checkevery: 2, checkeveryunit: 'second') { not { socket(server: 'localhost', port: '8787') } } start.execute() } } task wrapper(type: Wrapper) { gradleVersion = '4.3.1' }