azkaban-developers

Remove LESS Makefile and switch to gradle-lesscss-plugin.

4/26/2014 10:43:25 AM

Changes

build.gradle 244(+130 -114)

src/main/less/Makefile 34(+0 -34)

Details

build.gradle 244(+130 -114)

diff --git a/build.gradle b/build.gradle
index b508e46..8ace64a 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,5 +1,15 @@
+buildscript {
+  repositories {
+    mavenCentral()
+  }
+  dependencies {
+    classpath 'de.obqo.gradle:gradle-lesscss-plugin:1.0-1.3.3'
+  }
+}
+
 apply plugin: 'java'
 apply plugin: 'eclipse'
+apply plugin: 'lesscss'
 
 defaultTasks 'dist'
 
@@ -48,10 +58,8 @@ configurations {
         extendsFrom compile
     }
 }
-configurations.compile {
-    description = 'compile classpath'
-}
-pegasusVersion = '1.15.7'
+
+ext.pegasusVersion = '1.15.7'
 
 dependencies {
   compile (
@@ -93,7 +101,7 @@ dependencies {
     [group: 'com.linkedin.parseq', name: 'parseq', version: '1.3.7'],
     [group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.3.2']
   )
-  
+
   generateRestli (
       [group: 'com.linkedin.pegasus', name:'generator', version: pegasusVersion],
       [group: 'com.linkedin.pegasus', name:'restli-tools', version: pegasusVersion]
@@ -162,15 +170,12 @@ eclipse.classpath.file {
     }
 }
 
-/**
- * Invokes a makefile target that will compile less files
- */
-task compileLess(type:Exec) {
-    workingDir 'src/main/less'
-    commandLine 'make', '-e'
-    environment (
-      OBJ_DIR : file(new File(buildDir,'/less'))
-   )
+lesscss {
+  source = fileTree('src/main/less') {
+    include 'azkaban.less'
+    include 'azkaban-graph.less'
+  }
+  dest = 'build/web/css'
 }
 
 /**
@@ -181,27 +186,22 @@ task compileDust(type:Exec) {
     commandLine 'make', '-e'
     environment (
       OBJ_DIR : file(new File(buildDir,'/dust'))
-   )
+    )
 }
 
 /**
  * Copies web files to a build directory
  */
-task web(dependsOn: ['compileLess', 'compileDust']) << {
+task web(dependsOn: ['lesscss', 'compileDust']) << {
     println 'Copying web files'
     copy {
         from('src/web')
         into('build/web')
     }
-
     copy {
         from('build/dust')
         into('build/web/js')
     }
-    copy {
-        from('build/less')
-        into('build/web/css')
-    }
 }
 
 /*
@@ -223,224 +223,240 @@ task createVersionFile() << {
     versionFile.write(versionStr)
 }
 
+ext.soloAppendix = 'solo-server'
+ext.soloPackageDir = 'build/package/' + jar.baseName + '-' + soloAppendix
+
 /**
- * Packages the SoloServer version of Azkaban
+ * Copies the Azkaban Solo Server files into its package directory.
  */
-task packageSolo(type: Tar, dependsOn: [jar, 'web', 'createVersionFile']) {
-    appendix = 'solo-server'
-    packageDir = 'build/package/' + baseName + '-' + appendix
+task copySolo(dependsOn: ['jar', 'web', 'createVersionFile']) << {
+    delete soloPackageDir
+    mkdir soloPackageDir
 
-    println 'Creating Azkaban Solo Server Package into ' + packageDir
-    mkdir packageDir
-    mkdir packageDir + '/extlib'
-    mkdir packageDir + '/plugins'
+    println 'Creating Azkaban Solo Server Package into ' + soloPackageDir
+    mkdir soloPackageDir + '/lib'
+    mkdir soloPackageDir + '/extlib'
+    mkdir soloPackageDir + '/plugins'
 
-    println 'Copying Soloserver bin & conf'
     copy {
+        println 'Copying Soloserver bin & conf'
         from('src/package/soloserver')
-        into(packageDir)
+        into(soloPackageDir)
     }
 
-    println 'Copying Azkaban lib'
     copy {
+        println 'Copying Azkaban lib'
         from('build/libs')
-        into(packageDir + '/lib')
+        into(soloPackageDir + '/lib')
     }
 
-    println 'Copying web'
     copy {
+        println 'Copying web'
         from('build/web')
-        into(packageDir + '/web')
+        into(soloPackageDir + '/web')
     }
 
-    println 'Copying sql'
     copy {
+        println 'Copying sql'
         from('src/sql')
-        into(packageDir + '/sql')
+        into(soloPackageDir + '/sql')
     }
 
-    println 'Copying dependency jars'
     copy {
-        into packageDir + '/lib'
+        println 'Copying dependency jars'
+        into soloPackageDir + '/lib'
         from configurations.compile
     }
 
     copy {
-        into packageDir
+        println 'Copying version file'
+        into soloPackageDir
         from 'build/package/version.file'
     }
+}
 
-    println 'Tarballing Solo Package'
+/**
+ * Packages the SoloServer version of Azkaban
+ */
+task packageSolo(type: Tar, dependsOn: 'copySolo') {
+    appendix = soloAppendix
     extension = 'tar.gz'
     compression = Compression.GZIP
 
-    basedir = baseName + '-' + appendix + '-' + version
-    println 'Source is in ' + packageDir
+    ext.basedir = baseName + '-' + appendix + '-' + version
     into(basedir) {
-        from packageDir
+        from soloPackageDir
         exclude 'bin'
     }
 
-    dst_bin = basedir + '/bin'
-    src_bin = packageDir + '/bin'
+    ext.dst_bin = basedir + '/bin'
+    ext.src_bin = soloPackageDir + '/bin'
     from(src_bin) {
         into dst_bin
         fileMode = 0755
     }
 }
 
+ext.sqlPackageDir = 'build/package/sql'
+
 /**
- * Packages the Sql Scripts for Azkaban DB
+ * Copies the SQL files into its package directory.
  */
-task packageSql(type: Tar) {
-    String packageDir = 'build/package/sql'
-
-    println 'Creating Azkaban SQL Scripts into ' + packageDir
-	mkdir packageDir
+task copySql() << {
+    println 'Creating Azkaban SQL Scripts into ' + sqlPackageDir
+    delete sqlPackageDir
+    mkdir sqlPackageDir
 
-    println 'Copying SQL files'
     copy {
+        println 'Copying SQL files'
         from('src/sql')
-        into(packageDir)
+        into(sqlPackageDir)
     }
 
-    String destFile = packageDir + '/create-all-sql-' + version + '.sql';
-    println('Concating create scripts to ' + destFile)
+    String destFile = sqlPackageDir + '/create-all-sql-' + version + '.sql';
     ant.concat(destfile:destFile, fixlastline:'yes') {
+        println('Concating create scripts to ' + destFile)
         fileset(dir: 'src/sql') {
             exclude(name: 'update.*.sql')
             exclude(name: 'database.properties')
         }
     }
+}
 
-    println 'Tarballing SQL Package'
+/**
+ * Packages the Sql Scripts for Azkaban DB
+ */
+task packageSql(type: Tar, dependsOn: 'copySql') {
     extension = 'tar.gz'
     compression = Compression.GZIP
     appendix = 'sql'
 
-    basedir = baseName + '-' + appendix + '-' + version
-    packageDir = 'build/package/sql'
-    println 'Source is in ' + packageDir
+    ext.basedir = baseName + '-' + appendix + '-' + version
     into(basedir) {
-        from packageDir
+        from sqlPackageDir
     }
 }
 
+ext.execAppendix = 'exec-server'
+ext.execPackageDir = 'build/package/' + jar.baseName + '-' + execAppendix
+
 /**
- * Packages the Azkaban Executor Server
+ * Copies the Azkaban Executor Server files into its package directory.
  */
-task packageExec(type: Tar, dependsOn: [jar, 'createVersionFile']) {
-    appendix = 'exec-server'
-    String packageDir = 'build/package/' + baseName + '-' + appendix
+task copyExec(dependsOn: ['jar', 'createVersionFile']) << {
+    delete execPackageDir
+    println 'Creating Azkaban Executor Server Package into ' + execPackageDir
+    mkdir execPackageDir
+    mkdir execPackageDir + '/lib'
+    mkdir execPackageDir + '/extlib'
+    mkdir execPackageDir + '/plugins'
 
-    delete packageDir
-    println 'Creating Azkaban Executor Server Package into ' + packageDir
-    mkdir packageDir
-    mkdir packageDir + '/extlib'
-    mkdir packageDir + '/plugins'
-
-    println 'Copying Exec server bin & conf'
     copy {
+        println 'Copying Exec server bin & conf'
         from('src/package/execserver')
-        into(packageDir)
+        into(execPackageDir)
     }
-    
-    String jarFile = 'build/libs/' + baseName + '-' + version + '.jar'
-    println 'Copying Azkaban lib ' + jarFile
+
     copy {
-        from(jarFile)
-        into(packageDir + '/lib')
+        println 'Copying Azkaban lib '
+        from('build/libs')
+        into(execPackageDir + '/lib')
     }
 
-    println 'Copying dependency jars'
     copy {
-        into packageDir + '/lib'
+        println 'Copying dependency jars'
+        into execPackageDir + '/lib'
         from configurations.compile
     }
 
     copy {
-        into packageDir
+        into execPackageDir
         from 'build/package/version.file'
     }
+}
 
-    println 'Tarballing Web Package'
+/**
+ * Packages the Azkaban Executor Server
+ */
+task packageExec(type: Tar, dependsOn: 'copyExec') {
+    appendix = execAppendix
     extension = 'tar.gz'
     compression = Compression.GZIP
 
-    basedir = baseName + '-' + appendix + '-' + version
-    packageDir = 'build/package/' + baseName + '-' + appendix
-    println 'Source is in ' + packageDir
-
+    ext.basedir = baseName + '-' + appendix + '-' + version
     into(basedir) {
-        from packageDir
+        from execPackageDir
         exclude 'bin'
     }
 
-    dst_bin = basedir + '/bin'
-    src_bin = packageDir + '/bin'
+    ext.dst_bin = basedir + '/bin'
+    ext.src_bin = execPackageDir + '/bin'
     from(src_bin) {
         into dst_bin
         fileMode = 0755
     }
 }
 
+ext.webAppendix = 'web-server'
+ext.webPackageDir = 'build/package/' + jar.baseName + '-' + webAppendix
+
 /**
- * Packages the Azkaban Web Server
+ * Copies the Azkaban Web Server files into its package directory.
  */
-task packageWeb(type: Tar, dependsOn: [jar, 'web', 'createVersionFile']) {
-    appendix = 'web-server'
-    String packageDir = 'build/package/' + baseName + '-' + appendix
-    delete packageDir
-
-    println 'Creating Azkaban Web Server Package into ' + packageDir
-    mkdir packageDir
-    mkdir packageDir + '/extlib'
-    mkdir packageDir + '/plugins'
+task copyWeb(dependsOn: ['jar', 'web', 'createVersionFile']) << {
+    println 'Creating Azkaban Web Server Package into ' + webPackageDir
+    delete webPackageDir
+    mkdir webPackageDir
+    mkdir webPackageDir + '/lib'
+    mkdir webPackageDir + '/extlib'
+    mkdir webPackageDir + '/plugins'
 
     println 'Copying Web server bin & conf'
     copy {
         from('src/package/webserver')
-        into(packageDir)
+        into(webPackageDir)
     }
-    
-    String jarFile = 'build/libs/' + baseName + '-' + version + '.jar'
-    println 'Copying Azkaban lib ' + jarFile
 
+    println 'Copying Azkaban lib '
     copy {
-        from(jarFile)
-        into(packageDir + '/lib')
+        from('build/libs')
+        into(webPackageDir + '/lib')
     }
 
     println 'Copying web'
     copy {
         from('build/web')
-        into(packageDir + '/web')
+        into(webPackageDir + '/web')
     }
 
     println 'Copying dependency jars'
     copy {
-        into packageDir + '/lib'
+        into webPackageDir + '/lib'
         from configurations.compile
     }
 
     copy {
-        into packageDir
+        into webPackageDir
         from 'build/package/version.file'
     }
+}
 
-    println 'Tarballing Web Package'
+/**
+ * Packages the Azkaban Web Server
+ */
+task packageWeb(type: Tar, dependsOn: 'copyWeb') {
+    appendix = webAppendix
     extension = 'tar.gz'
     compression = Compression.GZIP
 
-    basedir = baseName + '-' + appendix + '-' + version
-    println 'Source is in ' + packageDir
+    ext.basedir = baseName + '-' + appendix + '-' + version
     into(basedir) {
-        from packageDir
+        from webPackageDir
         exclude 'bin'
     }
 
-    dst_bin = basedir + '/bin'
-    src_bin = packageDir + '/bin'
+    ext.dst_bin = basedir + '/bin'
+    ext.src_bin = webPackageDir + '/bin'
     from(src_bin) {
         into dst_bin
         fileMode = 0755