cuba/build.gradle
2013-10-24 09:10:45 +00:00

815 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.1-SNAPSHOT'
ext.cubaVersion = rootProject.hasProperty('buildVersion') ? rootProject['buildVersion'] : cubaVersion
println("CUBA Platform Version ${ext.cubaVersion}")
println("")
def docPluginVersion = '1.2.4'
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 vaadinVersion = '7.1.7.cuba.2'
def vaadinLegacyVersion = '6.6.1.108'
def springVersion = '3.1.3.RELEASE'
def servletApi = [group: 'org.apache.tomcat', name: 'servlet-api', version: '6.0.20']
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 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, webToolkitModule,
webModule, desktopModule, portalModule, webAuthModule, webLegacyModule, webToolkitLegacyModule]) {
apply(plugin: 'java')
apply(plugin: 'idea')
apply(plugin: 'maven')
apply(plugin: 'code-quality')
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: 'javax.mail', name: 'mail', version: '1.4.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.1')
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: '13.0.1')
compile(group: 'org.apache.openjpa', name: 'openjpa', version: '2.2.2')
compile(group: 'net.sourceforge.serp', name: 'serp', version: '1.13.1')
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: 'com.haulmont.thirdparty', name: 'jmockit', version: '0.999.10')
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 = '../../config/checkstyle'
checkstyleConfigFileName = "$checkstyleConfigDir/checkstyle.xml"
checkstyleProperties.checkstyleConfigDir = checkstyleConfigFile.parentFile // Required for suppressions.xml linking
checkstyleMain << {
def checkstyleDir = "${project.buildDir}/checkstyle".toString()
ant.xslt('in': "$checkstyleDir/main.xml", out: "$checkstyleDir/$project.name-checkstyle.html", style: "$checkstyleConfigDir/checkstyle.xsl")
}
}
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"
}
}
configure(coreModule) {
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: '2.12.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.0.5')
compile(group: 'org.mybatis', name: 'mybatis-spring', version: '1.0.1')
compile(group: 'org.json', name: 'json', version: '20090211')
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)
testRuntime(servletApi)
testRuntime(hsqldb)
}
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 << {
copy {
from new File(projectDir, 'db')
into "$buildDir/db/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: assemble, description: 'Creates local HSQL database', type: CubaDbCreation) {
dbms = 'hsql'
dbName = hsqlDbName
dbUser = 'sa'
dbPassword = ''
}
}
configure(clientModule) {
dependencies {
compile(globalModule)
}
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(globalModule)
compile(clientModule)
compile(poi)
compile(group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.2.2')
compile(groovyArtifact)
compile(asm)
testCompile(clientModule.sourceSets.test.output)
}
task enhanceTransient(type: CubaEnhanceTransient) {
classes = [
'com.haulmont.cuba.gui.security.entity.AbstractPermissionTarget',
'com.haulmont.cuba.gui.security.entity.AttributeTarget',
'com.haulmont.cuba.gui.security.entity.BasicPermissionTarget',
'com.haulmont.cuba.gui.security.entity.MultiplePermissionTarget',
'com.haulmont.cuba.gui.security.entity.OperationPermissionTarget',
'com.haulmont.cuba.gui.security.entity.UiPermissionTarget'
]
}
test {
scanForTestClasses = false
includes = ['**/*Test.class']
}
}
configure(webModule) {
dependencies {
compile(sharedLibModule)
compile(globalModule)
compile(clientModule)
compile(guiModule)
compile(webAuthModule)
compile(commonsUpload)
compile(casClient)
compile(group: 'org.springframework', name: 'spring-webmvc', version: springVersion)
compile(group: 'com.vaadin', name: 'vaadin-server', version: vaadinVersion)
/* Vaadin addons */
compile(group: 'com.haulmont.thirdparty', name: 'popupbutton', version: '2.2.1')
compile(group: 'org.vaadin.addons', name: 'aceeditor', version: '0.8.9')
provided(servletApi)
}
def resourceBuildTimeStamp = new java.text.SimpleDateFormat('yyyy_MM_dd_HH_mm').format(new Date())
task resourceTimeStampInject() << {
new File("${project.buildDir}/classes/main/com/haulmont/cuba/web/resources.timestamp").write(resourceBuildTimeStamp)
}
classes.dependsOn resourceTimeStampInject
task buildScssThemes(type: CubaWebScssThemeCreation) {
buildTimeStamp = resourceBuildTimeStamp
themes = ['havana']
destDir = "${project.buildDir}/web/VAADIN/themes"
// compress = true
sprites = true
// cleanup = true
}
def webOutDir = file("$buildDir/web")
task webArchive(dependsOn: buildScssThemes, type: Zip) {
from file('web')
from webOutDir
exclude '**/web.xml', '**/app.properties'
classifier = 'web'
}
task scssThemesZip(type: Zip) {
from webModule.file('themes')
exclude '**/.*'
version = artifactVersion + (isSnapshot ? '-SNAPSHOT' : '')
classifier = 'web-themes'
}
artifacts {
archives webArchive
themes scssThemesZip
}
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-theme-compiler',
'aceeditor', 'popupbutton')
}
deploy << {
copy {
from "$buildDir/web"
into "$tomcatDir/webapps/cuba"
}
}
}
configure(webAuthModule) {
dependencies {
compile(globalModule)
provided(servletApi)
}
}
configure(webToolkitModule) {
configurations {
widgetSetBuilding
}
dependencies {
compile(webModule)
compile(group: 'com.vaadin', name: 'vaadin-client-compiled', version: vaadinVersion)
compile(group: 'com.vaadin', name: 'vaadin-client', version: vaadinVersion)
compile(group: 'com.vaadin', name: 'vaadin-client-compiler', version: vaadinVersion)
widgetSetBuilding(webModule)
}
def webOutDir = file("$buildDir/web")
task buildWidgetSet(type: CubaWidgetSetBuilding) {
widgetSetsDir = "$webOutDir/VAADIN/widgetsets"
widgetSetClass = 'com.haulmont.cuba.web.toolkit.ui.WidgetSet'
//jvmArgs('-Xdebug', '-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000')
compilerArgs = ['-style': 'PRETTY', '-logLevel': 'INFO', '-localWorkers': '2']
}
task webArchive(dependsOn: buildWidgetSet, type: Zip) {
from file('web')
from webOutDir
exclude '**/web.xml', '**/app.properties', '**/gwt-unitCache/'
classifier = 'web'
}
artifacts {
archives webArchive
}
task deploy(dependsOn: buildWidgetSet) << {
delete {
"$tomcatDir/webapps/cuba/VAADIN/widgetsets"
}
copy {
from "$buildDir/web"
into "$tomcatDir/webapps/cuba"
exclude '**/gwt-unitCache/'
}
}
}
configure(desktopModule) {
apply(plugin: 'application')
mainClassName = 'com.haulmont.cuba.desktop.App'
dependencies {
compile(globalModule)
compile(clientModule)
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]
}
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' }
}
}
def springSecurityVersion = '3.1.3.RELEASE'
dependencies {
compile(globalModule)
compile(clientModule)
compile(sharedLibModule)
provided(servletApi)
compile(group: 'org.springframework', name: 'spring-webmvc', version: springSecurityVersion)
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) {
configurations {
gwtBuilding
}
dependencies {
compile(sharedLibModule)
compile(globalModule)
compile(clientModule)
compile(guiModule)
compile(webAuthModule)
compile(commonsUpload)
compile(casClient)
compile(group: 'org.springframework', name: 'spring-webmvc', version: springVersion)
compile(vaadinLegacy)
compile(popupButtonLegacy)
provided(webToolkitLegacyModule)
provided(gwtUser)
provided(gwtDev)
provided(gwtServlets)
provided(validationApi)
provided(servletApi)
gwtBuilding(validationApi + [classifier: 'sources'])
}
def resourceBuildTimeStamp = new java.text.SimpleDateFormat('yyyy_MM_dd_HH_mm').format(new Date())
task resourceTimeStampInject() << {
new File("${project.buildDir}/classes/main/com/haulmont/cuba/web/resources.timestamp").write(resourceBuildTimeStamp)
}
classes.dependsOn resourceTimeStampInject
task buildScssThemes(type: CubaWebScssThemeCreation) {
buildTimeStamp = resourceBuildTimeStamp
themes = ['havana']
destDir = "${project.buildDir}/web/VAADIN/themes"
// compress = true
// sprites = true
// cleanup = true
}
task buildThemes(type: CubaWebThemeCreation) {
themes = [
// [themeName: 'peyto', destFile: 'styles-include.css'],
[themeName: 'havana', destFile: 'styles-include.css']
]
cssDir = 'css/VAADIN/themes'
destDir = "$buildDir/web/VAADIN/themes"
}
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'
}
task scssThemesZip(type: Zip) {
from webModule.file('themes')
exclude '**/.*'
version = artifactVersion + (isSnapshot ? '-SNAPSHOT' : '')
classifier = 'web-themes'
}
artifacts {
archives webArchive
themes scssThemesZip
}
task deploy(dependsOn: assemble, type: CubaDeployment) {
appName = 'cuba6'
appJars('cuba-global', 'cuba-client', 'cuba-gui', 'cuba-web-auth', 'cuba-web6',
'vaadin', 'popupbutton')
}
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(webToolkitLegacyModule) {
dependencies {
compile(vaadinLegacy)
compile(popupButtonLegacy)
provided(gwtUser)
provided(gwtDev)
provided(gwtServlets)
provided(validationApi)
}
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.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 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)
}*/
task transformSecurity(type: TransformDocbook) {
sourceDir = new File(docSrcDir, 'security/ru')
sourceFile = new File(sourceDir, 'security.xml')
destFile = new File(docTmpDir, 'security/ru/security.xml')
classpath = configurations.buildDoc
}
def commonXslParameters = [
'toc.section.depth': '5',
'chunk.section.depth': '5',
'section.autolabel': '1',
'chapter.autolabel': '1',
'appendix.autolabel': 'A'
]
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")
brand = "CUBA"
language = "ru"
xslParameters = commonXslParameters
}
task buildSecurityWebHelp(type: DocBook2WebHelp, dependsOn: transformSecurity) {
sourceFile = transformSecurity.destFile
imagesDir = new File(transformSecurity.sourceDir, "img")
destDir = new File(docDstDir, "security/ru/webhelp")
templateDir = new File(docToolsDir, "webhelp/template")
searchDir = new File(docToolsDir, "webhelp/search")
brand = "CUBA"
language = "ru"
xslParameters = commonXslParameters
}
task buildSecurityXhtml(type: Docbook2Xhtml, dependsOn: transformSecurity) {
source transformSecurity.destFile
destFile = new File(docTmpDir, 'security-pdf/security-pdf.html')
stylesheetName = 'pdf.xsl'
resources = fileTree(new File(docSrcDir, 'security/ru')) {
include 'img/*.png'
include 'img/*.jpg'
}
resources += fileTree(docCssDir) {
include '*.css'
}
}
task buildSecurityPdf(type: Xhtml2Pdf, dependsOn: buildSecurityXhtml) {
inputs.dir docCssDir
sourceFile = buildSecurityXhtml.destFile
destFile = new File(docDstDir, 'security/ru/pdf/security.pdf')
classpath = configurations.buildDoc
fonts = zipTree(configurations.docFonts.singleFile)
}
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 buildSecurityHtml(type: Docbook2Xhtml, dependsOn: transformSecurity) {
source transformSecurity.destFile
destDir = new File(docDstDir, 'security/ru/html')
stylesheetName = 'html.xsl'
resources = fileTree(new File(docSrcDir, 'security/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'
}
}
task buildSecuritySingleHtml(type: Docbook2Xhtml, dependsOn: transformSecurity) {
source transformSecurity.destFile
destFile = new File(docDstDir, 'security/ru/html-single/security.html')
stylesheetName = 'html-single.xsl'
resources = fileTree(new File(docSrcDir, 'security/ru')) {
include 'img/**/*.png'
include 'img/**/*.jpg'
}
resources += fileTree(docCssDir) {
include '*.css'
}
}
task buildDoc(type: Zip, description: 'Build documentation',
dependsOn: [buildManualSingleHtml, buildSecuritySingleHtml, buildSecurityPdf, buildManualWebHelp, buildSecurityWebHelp]) {
//dependsOn: [buildManualSingleHtml,buildManualPdf,buildSecuritySingleHtml,buildSecurityPdf]) {
from 'build/doc'
destinationDir = file('build/distributions')
baseName = 'cuba-doc'
version = artifactVersion + (isSnapshot ? '-SNAPSHOT' : '')
}
artifacts {
if (Boolean.valueOf(System.getProperty("buildDoc")))
archives buildDoc
}