0
|
1 apply plugin:'java'
|
|
2 apply plugin: 'eclipse'
|
|
3
|
|
4 sourceCompatibility = 1.8
|
|
5 targetCompatibility = 1.8
|
|
6 version = '2.7.2'
|
|
7
|
|
8 project.ext.baseName = 'tightvnc-jviewer'
|
|
9 def buildNo = processBuildNo(version)
|
|
10
|
|
11 defaultTasks 'clean', 'dist'
|
|
12
|
|
13 configurations {
|
|
14 viewerSwingCompile { extendsFrom compile }
|
|
15 viewerSwingRuntime { extendsFrom viewerSwingCompile, runtime }
|
|
16 }
|
|
17
|
|
18 sourceSets {
|
|
19 viewerSwing {
|
|
20 java {
|
|
21 srcDir 'src/viewer_swing/java'
|
|
22 }
|
|
23 resources {
|
|
24 srcDir 'src/viewer_swing/resources'
|
|
25 }
|
|
26 }
|
|
27 main {
|
|
28 java.srcDirs += viewerSwing.java.srcDirs
|
|
29 resources.srcDirs += viewerSwing.resources.srcDirs
|
|
30 }
|
|
31 }
|
|
32
|
|
33 repositories {
|
|
34 flatDir {
|
|
35 dirs 'src/libs/'
|
|
36 }
|
|
37 }
|
|
38
|
|
39 dependencies {
|
6
|
40 compile fileTree(dir: 'src/libs', include: '*.jar')
|
|
41
|
0
|
42 viewerSwingCompile group: 'com.jcraft', name: 'jsch', version: '0.1.+', ext: 'jar'
|
|
43 viewerSwingRuntime configurations.viewerSwingCompile
|
|
44 }
|
|
45
|
|
46 def manifestAttributes = ['Main-Class': 'com.glavsoft.viewer.Viewer',
|
|
47 'Implementation-Version': "${project.version} (${buildNo})",
|
|
48 'Implementation-Title': 'TightVNC Viewer',
|
|
49 'Implementation-Vendor': 'GlavSoft LLC.']
|
|
50
|
|
51 jar {
|
|
52 baseName = project.baseName
|
|
53 version = null
|
|
54 manifest {
|
|
55 attributes manifestAttributes
|
|
56 }
|
|
57 def runtimeDeps = configurations.viewerSwingRuntime.collect {
|
|
58 it.isDirectory() ? it : zipTree(it)
|
|
59 }
|
|
60 from(runtimeDeps) {
|
|
61 exclude 'META-INF/**'
|
|
62 }
|
|
63 }
|
|
64
|
|
65 task noSshJar (type: Jar, dependsOn: classes) {
|
|
66 baseName = 'nossh/' + project.baseName
|
|
67 version = null
|
|
68 manifest {
|
|
69 attributes manifestAttributes
|
|
70 }
|
|
71 from sourceSets.main.output
|
|
72 }
|
|
73
|
|
74 artifacts {
|
|
75 archives file('src/web/viewer-applet-example.html')
|
|
76 archives noSshJar
|
|
77 }
|
|
78
|
|
79 uploadArchives {
|
|
80 repositories {
|
|
81 add(new org.apache.ivy.plugins.resolver.FileSystemResolver()) {
|
|
82 addArtifactPattern("$projectDir/dist/${project.baseName}-${project.version}/[artifact].[ext]")
|
|
83 }
|
|
84 }
|
|
85 uploadDescriptor = false
|
|
86 }
|
|
87
|
|
88 task dist(dependsOn: uploadArchives)
|
|
89
|
|
90 def processBuildNo(currentVersion) {
|
|
91 final String VERSION = 'version'
|
|
92 final String BUILD = 'build'
|
|
93
|
|
94 def lastVersion = currentVersion
|
|
95 def lastBuild = 0
|
|
96 def buildNoFile = new File('.build_no')
|
|
97 if ( ! buildNoFile.exists()) {
|
|
98 buildNoFile.createNewFile()
|
|
99 buildNoFile << "${VERSION}=${lastVersion}\n${BUILD}=${lastBuild}"
|
|
100 }
|
|
101 def versions = [:]
|
|
102 buildNoFile.eachLine {
|
|
103 def splitted = it.split('=')
|
|
104 if (splitted.size() == 2) {
|
|
105 def (key, value) = splitted
|
|
106 switch(key.trim()) {
|
|
107 case VERSION:
|
|
108 lastVersion = value.trim()
|
|
109 break
|
|
110 case BUILD:
|
|
111 try {
|
|
112 lastBuild = value != null ? value.trim() as Integer : 0
|
|
113 } catch (NumberFormatException) {}
|
|
114 versions[lastVersion] = lastBuild
|
|
115 break
|
|
116 }
|
|
117 }
|
|
118 }
|
|
119 lastVersion = versions[currentVersion]
|
|
120 if (null == lastVersion) {
|
|
121 versions[currentVersion] = 0
|
|
122 }
|
|
123 ++versions[currentVersion]
|
|
124 def outString = ''
|
|
125 versions.each { v, b ->
|
|
126 outString += "${VERSION}=${v}\n${BUILD}=${b}\n\n"
|
|
127 }
|
|
128 buildNoFile.write(outString)
|
|
129 versions[currentVersion]
|
|
130 }
|