From b7497deb41ba42c4b9c626de66108d0fed216a07 Mon Sep 17 00:00:00 2001 From: David Rautureau Date: Wed, 14 Mar 2018 16:18:20 +0100 Subject: [PATCH] Fix incremental build of sonar web --- .gitignore | 9 ---- server/sonar-web/.gitignore | 7 --- server/sonar-web/build.gradle | 41 +++++++++++++++--- server/sonar-web/config/paths.js | 8 ++-- .../{src/main/webapp => public}/.htaccess | 0 .../main/webapp => public}/WEB-INF/web.xml | 0 .../apple-touch-icon-114x114.png | Bin .../apple-touch-icon-120x120.png | Bin .../apple-touch-icon-144x144.png | Bin .../apple-touch-icon-152x152.png | Bin .../apple-touch-icon-180x180.png | Bin .../apple-touch-icon-57x57.png | Bin .../apple-touch-icon-60x60.png | Bin .../apple-touch-icon-72x72.png | Bin .../apple-touch-icon-76x76.png | Bin .../apple-touch-icon-precomposed.png | Bin .../webapp => public}/apple-touch-icon.png | Bin .../{src/main/webapp => public}/favicon.ico | Bin .../webapp => public}/fonts/sonar-5.2.eot | Bin .../webapp => public}/fonts/sonar-5.2.svg | 0 .../webapp => public}/fonts/sonar-5.2.ttf | Bin .../webapp => public}/fonts/sonar-5.2.woff | Bin .../main/webapp => public}/images/loading.gif | Bin .../main/webapp => public}/images/logo.svg | 0 .../project_badges/sonarcloud-black.svg | 0 .../project_badges/sonarcloud-orange.svg | 0 .../project_badges/sonarcloud-white.svg | 0 .../images/scanner-logos/ant.svg | 0 .../images/scanner-logos/gradle.svg | 0 .../images/scanner-logos/jenkins.svg | 0 .../images/scanner-logos/maven.svg | 0 .../images/scanner-logos/msbuild.svg | 0 .../images/scanner-logos/sonarqube.svg | 0 .../main/webapp => public}/images/select2.png | Bin .../webapp => public}/images/select2x2.png | Bin .../main/webapp => public}/mstile-512x512.png | Bin .../{src/main/webapp => public}/robots.txt | 0 server/sonar-web/scripts/build.js | 10 +---- sonar-application/build.gradle | 7 +-- 39 files changed, 41 insertions(+), 41 deletions(-) rename server/sonar-web/{src/main/webapp => public}/.htaccess (100%) rename server/sonar-web/{src/main/webapp => public}/WEB-INF/web.xml (100%) rename server/sonar-web/{src/main/webapp => public}/apple-touch-icon-114x114.png (100%) rename server/sonar-web/{src/main/webapp => public}/apple-touch-icon-120x120.png (100%) rename server/sonar-web/{src/main/webapp => public}/apple-touch-icon-144x144.png (100%) rename server/sonar-web/{src/main/webapp => public}/apple-touch-icon-152x152.png (100%) rename server/sonar-web/{src/main/webapp => public}/apple-touch-icon-180x180.png (100%) rename server/sonar-web/{src/main/webapp => public}/apple-touch-icon-57x57.png (100%) rename server/sonar-web/{src/main/webapp => public}/apple-touch-icon-60x60.png (100%) rename server/sonar-web/{src/main/webapp => public}/apple-touch-icon-72x72.png (100%) rename server/sonar-web/{src/main/webapp => public}/apple-touch-icon-76x76.png (100%) rename server/sonar-web/{src/main/webapp => public}/apple-touch-icon-precomposed.png (100%) rename server/sonar-web/{src/main/webapp => public}/apple-touch-icon.png (100%) rename server/sonar-web/{src/main/webapp => public}/favicon.ico (100%) rename server/sonar-web/{src/main/webapp => public}/fonts/sonar-5.2.eot (100%) rename server/sonar-web/{src/main/webapp => public}/fonts/sonar-5.2.svg (100%) rename server/sonar-web/{src/main/webapp => public}/fonts/sonar-5.2.ttf (100%) rename server/sonar-web/{src/main/webapp => public}/fonts/sonar-5.2.woff (100%) rename server/sonar-web/{src/main/webapp => public}/images/loading.gif (100%) rename server/sonar-web/{src/main/webapp => public}/images/logo.svg (100%) rename server/sonar-web/{src/main/webapp => public}/images/project_badges/sonarcloud-black.svg (100%) rename server/sonar-web/{src/main/webapp => public}/images/project_badges/sonarcloud-orange.svg (100%) rename server/sonar-web/{src/main/webapp => public}/images/project_badges/sonarcloud-white.svg (100%) rename server/sonar-web/{src/main/webapp => public}/images/scanner-logos/ant.svg (100%) rename server/sonar-web/{src/main/webapp => public}/images/scanner-logos/gradle.svg (100%) rename server/sonar-web/{src/main/webapp => public}/images/scanner-logos/jenkins.svg (100%) rename server/sonar-web/{src/main/webapp => public}/images/scanner-logos/maven.svg (100%) rename server/sonar-web/{src/main/webapp => public}/images/scanner-logos/msbuild.svg (100%) rename server/sonar-web/{src/main/webapp => public}/images/scanner-logos/sonarqube.svg (100%) rename server/sonar-web/{src/main/webapp => public}/images/select2.png (100%) rename server/sonar-web/{src/main/webapp => public}/images/select2x2.png (100%) rename server/sonar-web/{src/main/webapp => public}/mstile-512x512.png (100%) rename server/sonar-web/{src/main/webapp => public}/robots.txt (100%) diff --git a/.gitignore b/.gitignore index 36df787872f..eeaa0bc6f63 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,3 @@ -# The following should be moved in related sub-directories -server/sonar-web/src/main/webapp/stylesheets/sonar-colorizer.css -server/sonar-web/src/main/webapp/deploy/plugins -server/sonar-web/src/main/webapp/deploy/bootstrap -server/sonar-web/src/main/webapp/deploy/maven/org -server/sonar-web/src/main/webapp/WEB-INF/log/ -server/sonar-web/src/main/webapp/deploy/*.jar -server/sonar-web/src/main/webapp/deploy/jdbc-driver.txt - # ---- Gradle build/ .gradle/ diff --git a/server/sonar-web/.gitignore b/server/sonar-web/.gitignore index 54edd2e381a..bc02f6cecbc 100644 --- a/server/sonar-web/.gitignore +++ b/server/sonar-web/.gitignore @@ -16,13 +16,6 @@ yarn-error.log #webpack .awcache/ -# build -build/ -src/main/webapp/js/ -src/main/webapp/css/ -src/main/webapp/index.html -src/main/webapp/WEB-INF/lib/*.jar - # tests src/test/json/**/*.png lcov.info diff --git a/server/sonar-web/build.gradle b/server/sonar-web/build.gradle index ee71411cf03..131b5fb406b 100644 --- a/server/sonar-web/build.gradle +++ b/server/sonar-web/build.gradle @@ -9,7 +9,6 @@ sonarqube { } apply plugin: 'com.moowork.node' -apply plugin: 'war' configurations { branding @@ -17,13 +16,37 @@ configurations { dependencies { branding 'com.sonarsource:sonarsource-branding:1.3.0.307@war' } + +def webappDir = "${buildDir}/webapp" +def brandingDir = "${buildDir}/branding" + task unzipBranding(type: Copy) { - into projectDir from { zipTree(configurations.branding.singleFile) } + into brandingDir +} +task copyBrandingSrc(type: Copy, dependsOn: unzipBranding) { + into projectDir + from file(brandingDir) include '**/*.js' + includeEmptyDirs = false +} +task copyBrandingWebapp(type: Copy, dependsOn: unzipBranding) { + into "${projectDir}/public" + from file("${brandingDir}/src/main/webapp") include '**/*.svg' includeEmptyDirs = false } +task copyBrandingFile(type: Copy, dependsOn: unzipBranding) { + into "${projectDir}/public" + from file(brandingDir) + include '**/branding' + includeEmptyDirs = false +} +task copyBranding() { + dependsOn copyBrandingSrc + dependsOn copyBrandingWebapp + dependsOn copyBrandingFile +} node { version = '8.5.0' @@ -32,13 +55,17 @@ node { } yarn_run { - if (release) { dependsOn unzipBranding } + if (release) { dependsOn copyBranding } + inputs.dir('config') + inputs.dir('public') inputs.dir('scripts') - inputs.dir('src/main/js') + inputs.dir('src') + inputs.file('.babelrc') inputs.file('build.gradle') - outputs.dir('src/main/webapp') + inputs.file('package.json') + inputs.file('tsconfig.json') + inputs.file('yarn.lock') + outputs.dir(webappDir) args = ['build'] } - -war.dependsOn yarn_run diff --git a/server/sonar-web/config/paths.js b/server/sonar-web/config/paths.js index 5b380588750..9bb3c591122 100644 --- a/server/sonar-web/config/paths.js +++ b/server/sonar-web/config/paths.js @@ -45,14 +45,14 @@ const nodePaths = (process.env.NODE_PATH || '') // config after eject: we're in ./config/ module.exports = { - appBuild: resolveApp('src/main/webapp'), + appBuild: resolveApp('build/webapp'), appPublic: resolveApp('public'), appHtml: resolveApp('public/index.html'), appPackageJson: resolveApp('package.json'), appSrc: resolveApp('src/main/js'), - jsBuild: resolveApp('src/main/webapp/js'), - cssBuild: resolveApp('src/main/webapp/css'), - htmlBuild: resolveApp('src/main/webapp/index.html'), + jsBuild: resolveApp('build/webapp/js'), + cssBuild: resolveApp('build/webapp/css'), + htmlBuild: resolveApp('build/webapp/index.html'), appNodeModules: resolveApp('node_modules'), ownNodeModules: resolveApp('node_modules'), nodePaths diff --git a/server/sonar-web/src/main/webapp/.htaccess b/server/sonar-web/public/.htaccess similarity index 100% rename from server/sonar-web/src/main/webapp/.htaccess rename to server/sonar-web/public/.htaccess diff --git a/server/sonar-web/src/main/webapp/WEB-INF/web.xml b/server/sonar-web/public/WEB-INF/web.xml similarity index 100% rename from server/sonar-web/src/main/webapp/WEB-INF/web.xml rename to server/sonar-web/public/WEB-INF/web.xml diff --git a/server/sonar-web/src/main/webapp/apple-touch-icon-114x114.png b/server/sonar-web/public/apple-touch-icon-114x114.png similarity index 100% rename from server/sonar-web/src/main/webapp/apple-touch-icon-114x114.png rename to server/sonar-web/public/apple-touch-icon-114x114.png diff --git a/server/sonar-web/src/main/webapp/apple-touch-icon-120x120.png b/server/sonar-web/public/apple-touch-icon-120x120.png similarity index 100% rename from server/sonar-web/src/main/webapp/apple-touch-icon-120x120.png rename to server/sonar-web/public/apple-touch-icon-120x120.png diff --git a/server/sonar-web/src/main/webapp/apple-touch-icon-144x144.png b/server/sonar-web/public/apple-touch-icon-144x144.png similarity index 100% rename from server/sonar-web/src/main/webapp/apple-touch-icon-144x144.png rename to server/sonar-web/public/apple-touch-icon-144x144.png diff --git a/server/sonar-web/src/main/webapp/apple-touch-icon-152x152.png b/server/sonar-web/public/apple-touch-icon-152x152.png similarity index 100% rename from server/sonar-web/src/main/webapp/apple-touch-icon-152x152.png rename to server/sonar-web/public/apple-touch-icon-152x152.png diff --git a/server/sonar-web/src/main/webapp/apple-touch-icon-180x180.png b/server/sonar-web/public/apple-touch-icon-180x180.png similarity index 100% rename from server/sonar-web/src/main/webapp/apple-touch-icon-180x180.png rename to server/sonar-web/public/apple-touch-icon-180x180.png diff --git a/server/sonar-web/src/main/webapp/apple-touch-icon-57x57.png b/server/sonar-web/public/apple-touch-icon-57x57.png similarity index 100% rename from server/sonar-web/src/main/webapp/apple-touch-icon-57x57.png rename to server/sonar-web/public/apple-touch-icon-57x57.png diff --git a/server/sonar-web/src/main/webapp/apple-touch-icon-60x60.png b/server/sonar-web/public/apple-touch-icon-60x60.png similarity index 100% rename from server/sonar-web/src/main/webapp/apple-touch-icon-60x60.png rename to server/sonar-web/public/apple-touch-icon-60x60.png diff --git a/server/sonar-web/src/main/webapp/apple-touch-icon-72x72.png b/server/sonar-web/public/apple-touch-icon-72x72.png similarity index 100% rename from server/sonar-web/src/main/webapp/apple-touch-icon-72x72.png rename to server/sonar-web/public/apple-touch-icon-72x72.png diff --git a/server/sonar-web/src/main/webapp/apple-touch-icon-76x76.png b/server/sonar-web/public/apple-touch-icon-76x76.png similarity index 100% rename from server/sonar-web/src/main/webapp/apple-touch-icon-76x76.png rename to server/sonar-web/public/apple-touch-icon-76x76.png diff --git a/server/sonar-web/src/main/webapp/apple-touch-icon-precomposed.png b/server/sonar-web/public/apple-touch-icon-precomposed.png similarity index 100% rename from server/sonar-web/src/main/webapp/apple-touch-icon-precomposed.png rename to server/sonar-web/public/apple-touch-icon-precomposed.png diff --git a/server/sonar-web/src/main/webapp/apple-touch-icon.png b/server/sonar-web/public/apple-touch-icon.png similarity index 100% rename from server/sonar-web/src/main/webapp/apple-touch-icon.png rename to server/sonar-web/public/apple-touch-icon.png diff --git a/server/sonar-web/src/main/webapp/favicon.ico b/server/sonar-web/public/favicon.ico similarity index 100% rename from server/sonar-web/src/main/webapp/favicon.ico rename to server/sonar-web/public/favicon.ico diff --git a/server/sonar-web/src/main/webapp/fonts/sonar-5.2.eot b/server/sonar-web/public/fonts/sonar-5.2.eot similarity index 100% rename from server/sonar-web/src/main/webapp/fonts/sonar-5.2.eot rename to server/sonar-web/public/fonts/sonar-5.2.eot diff --git a/server/sonar-web/src/main/webapp/fonts/sonar-5.2.svg b/server/sonar-web/public/fonts/sonar-5.2.svg similarity index 100% rename from server/sonar-web/src/main/webapp/fonts/sonar-5.2.svg rename to server/sonar-web/public/fonts/sonar-5.2.svg diff --git a/server/sonar-web/src/main/webapp/fonts/sonar-5.2.ttf b/server/sonar-web/public/fonts/sonar-5.2.ttf similarity index 100% rename from server/sonar-web/src/main/webapp/fonts/sonar-5.2.ttf rename to server/sonar-web/public/fonts/sonar-5.2.ttf diff --git a/server/sonar-web/src/main/webapp/fonts/sonar-5.2.woff b/server/sonar-web/public/fonts/sonar-5.2.woff similarity index 100% rename from server/sonar-web/src/main/webapp/fonts/sonar-5.2.woff rename to server/sonar-web/public/fonts/sonar-5.2.woff diff --git a/server/sonar-web/src/main/webapp/images/loading.gif b/server/sonar-web/public/images/loading.gif similarity index 100% rename from server/sonar-web/src/main/webapp/images/loading.gif rename to server/sonar-web/public/images/loading.gif diff --git a/server/sonar-web/src/main/webapp/images/logo.svg b/server/sonar-web/public/images/logo.svg similarity index 100% rename from server/sonar-web/src/main/webapp/images/logo.svg rename to server/sonar-web/public/images/logo.svg diff --git a/server/sonar-web/src/main/webapp/images/project_badges/sonarcloud-black.svg b/server/sonar-web/public/images/project_badges/sonarcloud-black.svg similarity index 100% rename from server/sonar-web/src/main/webapp/images/project_badges/sonarcloud-black.svg rename to server/sonar-web/public/images/project_badges/sonarcloud-black.svg diff --git a/server/sonar-web/src/main/webapp/images/project_badges/sonarcloud-orange.svg b/server/sonar-web/public/images/project_badges/sonarcloud-orange.svg similarity index 100% rename from server/sonar-web/src/main/webapp/images/project_badges/sonarcloud-orange.svg rename to server/sonar-web/public/images/project_badges/sonarcloud-orange.svg diff --git a/server/sonar-web/src/main/webapp/images/project_badges/sonarcloud-white.svg b/server/sonar-web/public/images/project_badges/sonarcloud-white.svg similarity index 100% rename from server/sonar-web/src/main/webapp/images/project_badges/sonarcloud-white.svg rename to server/sonar-web/public/images/project_badges/sonarcloud-white.svg diff --git a/server/sonar-web/src/main/webapp/images/scanner-logos/ant.svg b/server/sonar-web/public/images/scanner-logos/ant.svg similarity index 100% rename from server/sonar-web/src/main/webapp/images/scanner-logos/ant.svg rename to server/sonar-web/public/images/scanner-logos/ant.svg diff --git a/server/sonar-web/src/main/webapp/images/scanner-logos/gradle.svg b/server/sonar-web/public/images/scanner-logos/gradle.svg similarity index 100% rename from server/sonar-web/src/main/webapp/images/scanner-logos/gradle.svg rename to server/sonar-web/public/images/scanner-logos/gradle.svg diff --git a/server/sonar-web/src/main/webapp/images/scanner-logos/jenkins.svg b/server/sonar-web/public/images/scanner-logos/jenkins.svg similarity index 100% rename from server/sonar-web/src/main/webapp/images/scanner-logos/jenkins.svg rename to server/sonar-web/public/images/scanner-logos/jenkins.svg diff --git a/server/sonar-web/src/main/webapp/images/scanner-logos/maven.svg b/server/sonar-web/public/images/scanner-logos/maven.svg similarity index 100% rename from server/sonar-web/src/main/webapp/images/scanner-logos/maven.svg rename to server/sonar-web/public/images/scanner-logos/maven.svg diff --git a/server/sonar-web/src/main/webapp/images/scanner-logos/msbuild.svg b/server/sonar-web/public/images/scanner-logos/msbuild.svg similarity index 100% rename from server/sonar-web/src/main/webapp/images/scanner-logos/msbuild.svg rename to server/sonar-web/public/images/scanner-logos/msbuild.svg diff --git a/server/sonar-web/src/main/webapp/images/scanner-logos/sonarqube.svg b/server/sonar-web/public/images/scanner-logos/sonarqube.svg similarity index 100% rename from server/sonar-web/src/main/webapp/images/scanner-logos/sonarqube.svg rename to server/sonar-web/public/images/scanner-logos/sonarqube.svg diff --git a/server/sonar-web/src/main/webapp/images/select2.png b/server/sonar-web/public/images/select2.png similarity index 100% rename from server/sonar-web/src/main/webapp/images/select2.png rename to server/sonar-web/public/images/select2.png diff --git a/server/sonar-web/src/main/webapp/images/select2x2.png b/server/sonar-web/public/images/select2x2.png similarity index 100% rename from server/sonar-web/src/main/webapp/images/select2x2.png rename to server/sonar-web/public/images/select2x2.png diff --git a/server/sonar-web/src/main/webapp/mstile-512x512.png b/server/sonar-web/public/mstile-512x512.png similarity index 100% rename from server/sonar-web/src/main/webapp/mstile-512x512.png rename to server/sonar-web/public/mstile-512x512.png diff --git a/server/sonar-web/src/main/webapp/robots.txt b/server/sonar-web/public/robots.txt similarity index 100% rename from server/sonar-web/src/main/webapp/robots.txt rename to server/sonar-web/public/robots.txt diff --git a/server/sonar-web/scripts/build.js b/server/sonar-web/scripts/build.js index 321cb71c30c..c3469f538c3 100644 --- a/server/sonar-web/scripts/build.js +++ b/server/sonar-web/scripts/build.js @@ -37,14 +37,8 @@ function clean() { // if you're in it, you don't end up in Trash console.log(chalk.cyan.bold('Cleaning output directories and files...')); - console.log(paths.jsBuild + '/*'); - rimrafSync(paths.jsBuild + '/*'); - - console.log(paths.cssBuild + '/*'); - rimrafSync(paths.cssBuild + '/*'); - - console.log(paths.htmlBuild); - rimrafSync(paths.htmlBuild); + console.log(paths.appBuild + '/*'); + rimrafSync(paths.appBuild + '/*'); console.log(); } diff --git a/sonar-application/build.gradle b/sonar-application/build.gradle index aad5006205f..f737e0dd07c 100644 --- a/sonar-application/build.gradle +++ b/sonar-application/build.gradle @@ -9,7 +9,6 @@ configurations { jsw scanner server - webapp jdbc_mssql { transitive = false } @@ -40,7 +39,6 @@ dependencies { jsw 'tanukisoft:wrapper:3.2.3' scanner project(path: ':sonar-scanner-engine-shaded', configuration: 'shadow') server project(':server:sonar-server') - webapp project(path: ':server:sonar-web', configuration: 'archives') jdbc_h2 'com.h2database:h2' jdbc_mssql 'com.microsoft.sqlserver:mssql-jdbc' @@ -103,11 +101,8 @@ task zip(type: Zip) { into("${archiveDir}/lib/common/") { from configurations.ce + configurations.server + configurations.compile } - dependsOn configurations.webapp into("${archiveDir}/web/") { - from { - configurations.webapp.files.collect { zipTree(it) } - } + from tasks.getByPath(':server:sonar-web:yarn_run').outputs } into("${archiveDir}/lib/jdbc/mssql/") { from configurations.jdbc_mssql -- 2.39.5