| /******************************************************************************** |
| * Copyright (c) 2015-2018 Contributors to the Eclipse Foundation |
| * |
| * See the NOTICE file(s) distributed with this work for additional |
| * information regarding copyright ownership. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v. 2.0 which is available at |
| * http://www.eclipse.org/legal/epl-2.0. |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| ********************************************************************************/ |
| |
| |
| import org.apache.tools.ant.taskdefs.condition.Os |
| import org.apache.tools.ant.filters.ConcatFilter |
| |
| plugins { |
| id "com.moowork.node" version "1.3.1" |
| } |
| |
| description = 'MDM Web Application' |
| |
| System.setProperty('file.encoding', 'UTF-8') |
| |
| task map_tslint(type: Copy) { |
| File tsLintFile = file("${project.buildDir}/node/coverage/tslint_out.json") |
| File mappedTsLintFile = file("${project.buildDir}/node/coverage/tslint_out_mapped.json") |
| |
| if (tsLintFile.exists()) { |
| String contents = tsLintFile.getText('UTF-8') |
| contents = contents.replaceAll( 'src/app', 'src/main/webapp/src/app' ) |
| mappedTsLintFile.write(contents, 'UTF-8') |
| } |
| } |
| |
| sonarqube { |
| properties { |
| property "sonar.sources", "src/main/webapp/src,src/main/java" |
| property "sonar.exclusions", "src/main/webapp/node_modules/**, src/main/webapp/coverage/**, src/main/webapp/dist/**,**/*.spec.ts, **/*.js" |
| property "sonar.tests", "src/main/webapp/src" |
| property "sonar.test.inclusions", "**/*.spec.ts" |
| |
| property "sonar.ts.tslint.configPath", "src/main/webapp" |
| property "sonar.ts.tslint.projectPath", "src/main/webapp" |
| property "sonar.ts.tslint.outputPath", "${project.buildDir}/node/coverage/tslint_out_mapped.json" |
| property "sonar.ts.coverage.lcovReportpath", "${project.buildDir}/node/coverage/lcov.info" |
| } |
| } |
| |
| dependencies { |
| runtime 'org.glassfish.jersey.containers:jersey-container-servlet:2.23.2' |
| compile 'com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.9.2' |
| |
| compile project(':org.eclipse.mdm.businessobjects') |
| compile project(':org.eclipse.mdm.filerelease') |
| compile project(':org.eclipse.mdm.property') |
| compile project(':org.eclipse.mdm.freetextindexer') |
| compile project(':org.eclipse.mdm.preferences') |
| } |
| |
| jar { |
| metaInf { from '../NOTICE.txt' } |
| metaInf { from '../LICENSE.txt' } |
| } |
| |
| task copy_websources(type: Copy) { |
| |
| from('./src/main/webapp') { |
| exclude 'dist' |
| exclude 'node_modules' |
| exclude 'NOTICE.html' |
| } |
| |
| into "${project.buildDir}/node" |
| } |
| |
| task copyNoticeFile() { |
| file("${project.buildDir}/node/src/app/").mkdirs() |
| def html = file("${project.buildDir}/node/src/app/NOTICE.html") |
| html.text = '<pre>' + file('../NOTICE.txt').text + '</pre>' |
| } |
| |
| |
| node { |
| version = '10.14.0' |
| npmVersion = '6.4.1' |
| distBaseUrl = 'https://nodejs.org/dist' |
| download = true |
| workDir = file("${project.buildDir}/node/nodejs") |
| npmWorkDir = file("${project.buildDir}/node") |
| nodeModulesDir = file("${project.buildDir}/node") |
| if (!nodeModulesDir.isDirectory()) { |
| nodeModulesDir.mkdirs() |
| } |
| } |
| |
| npm_install { args = ["${project.buildDir}"] } |
| |
| task runBuild(type: NpmTask) { |
| args = ['run', 'ci_build'] |
| inputs.dir 'src' |
| outputs.dir 'build' |
| } |
| |
| task copy_loginsites(type: Copy) { |
| from "${project.buildDir}/node/src/login.jsp", |
| "${project.buildDir}/node/src/login.css", |
| "${project.buildDir}/node/src/error.jsp" |
| |
| into "${project.buildDir}/node/dist" |
| } |
| |
| task copyFilesForRunningWithoutNpm(type: Copy){ |
| from "${project.buildDir}/node/src/index.html" |
| into "${project.buildDir}/node/dist" |
| } |
| |
| if (hasProperty('skipNode')) { |
| compileJava.dependsOn(copy_loginsites) |
| } else { |
| compileJava.dependsOn(copy_loginsites) |
| map_tslint.dependsOn(runBuild) |
| copy_loginsites.dependsOn(runBuild) |
| runBuild.dependsOn(npmInstall) |
| npmInstall.dependsOn(copy_websources) |
| npmInstall.dependsOn(copyNoticeFile) |
| copy_websources.dependsOn(npmSetup) |
| npmSetup.dependsOn(nodeSetup) |
| } |