apply plugin:'java' apply plugin: 'eclipse' apply plugin: 'maven' sourceCompatibility = 1.8 targetCompatibility = 1.8 version = '2.7.2' project.ext.baseName = 'tightvnc-jviewer' def buildNo = processBuildNo(version) group = 'com.glavsoft.viewer' defaultTasks 'clean', 'dist' configurations { viewerSwingCompile { extendsFrom compile } viewerSwingRuntime { extendsFrom viewerSwingCompile, runtime } } sourceSets { viewerSwing { java { srcDir 'src/viewer_swing/java' } resources { srcDir 'src/viewer_swing/resources' } } main { java.srcDirs += viewerSwing.java.srcDirs resources.srcDirs += viewerSwing.resources.srcDirs } } repositories { maven(){ url 'http://www.cr.ie.u-ryukyu.ac.jp/hg/maven/raw-file/cd1aa6cb6d9d/' } flatDir { dirs 'src/libs/' } } dependencies { compile fileTree(dir: 'src/libs', include: '*.jar') compile group: 'cr.ie.u_ryukyu.ac.jp', name: 'Alice', version: '1.0', ext: 'jar' viewerSwingCompile group: 'cr.ie.u_ryukyu.ac.jp', name: 'Alice', version: '1.0', ext: 'jar' viewerSwingCompile group: 'com.jcraft', name: 'jsch', version: '0.1.+', ext: 'jar' viewerSwingRuntime configurations.viewerSwingCompile } def manifestAttributes = ['Main-Class': 'com.glavsoft.viewer.Viewer', 'Implementation-Version': "${project.version} (${buildNo})", 'Implementation-Title': 'TightVNC Viewer', 'Implementation-Vendor': 'GlavSoft LLC.'] jar { baseName = project.baseName version = null manifest { attributes manifestAttributes } def runtimeDeps = configurations.viewerSwingRuntime.collect { it.isDirectory() ? it : zipTree(it) } from(runtimeDeps) { exclude 'META-INF/**' } } task noSshJar (type: Jar, dependsOn: classes) { baseName = 'nossh/' + project.baseName version = null manifest { attributes manifestAttributes } from sourceSets.main.output } artifacts { //archives file('src/web/viewer-applet-example.html') //archives noSshJar } ext { mavenRepository = System.getenv()['HOME']+'/workspace/maven' } uploadArchives { repositories { mavenDeployer { repository(url: uri(mavenRepository)) } } } task dist(dependsOn: uploadArchives) def processBuildNo(currentVersion) { final String VERSION = 'version' final String BUILD = 'build' def lastVersion = currentVersion def lastBuild = 0 def buildNoFile = new File('.build_no') if ( ! buildNoFile.exists()) { buildNoFile.createNewFile() buildNoFile << "${VERSION}=${lastVersion}\n${BUILD}=${lastBuild}" } def versions = [:] buildNoFile.eachLine { def splitted = it.split('=') if (splitted.size() == 2) { def (key, value) = splitted switch(key.trim()) { case VERSION: lastVersion = value.trim() break case BUILD: try { lastBuild = value != null ? value.trim() as Integer : 0 } catch (NumberFormatException) {} versions[lastVersion] = lastBuild break } } } lastVersion = versions[currentVersion] if (null == lastVersion) { versions[currentVersion] = 0 } ++versions[currentVersion] def outString = '' versions.each { v, b -> outString += "${VERSION}=${v}\n${BUILD}=${b}\n\n" } buildNoFile.write(outString) versions[currentVersion] }