Генерируемая дата сборки в версии приложения

This commit is contained in:
Victor 2016-12-07 15:04:59 +02:00
parent 59a86c7d54
commit 7b8c6ad406
3 changed files with 27 additions and 7 deletions

3
.gitignore vendored
View File

@ -3,4 +3,5 @@
/dist/ /dist/
/store/ /store/
/optimizations/ /optimizations/
/nbproject/private/ /nbproject/private/
/src/main/generatedJava/

View File

@ -7,6 +7,9 @@ if (!hasProperty('mainClass')) {
ext.mainClass = 'com.annimon.ownlang.Main' ext.mainClass = 'com.annimon.ownlang.Main'
} }
ext.generatedJavaDir = "${rootProject.projectDir}/src/main/generatedJava"
sourceSets.main.java.srcDirs += project.generatedJavaDir
repositories { repositories {
jcenter() jcenter()
} }
@ -20,6 +23,21 @@ buildscript {
} }
} }
task generateJavaSources() {
doLast {
def source = """
package com.annimon.ownlang;
class Gen {
public static final String BUILD_DATE = "${new Date().format('YYMMdd')}";
}
"""
def genFile = new File("${project.generatedJavaDir}/com/annimon/ownlang/Gen.java")
genFile.getParentFile().mkdirs()
genFile.write(source)
}
}
compileJava.dependsOn(generateJavaSources)
task run(dependsOn: classes, type: JavaExec) { task run(dependsOn: classes, type: JavaExec) {
main = project.mainClass main = project.mainClass
classpath = sourceSets.main.runtimeClasspath classpath = sourceSets.main.runtimeClasspath
@ -37,13 +55,14 @@ task runOptimizing(dependsOn: classes, type: JavaExec) {
task dist(dependsOn: classes, type: Jar) { task dist(dependsOn: classes, type: Jar) {
from files(sourceSets.main.output.classesDir) from files(sourceSets.main.output.classesDir)
from files(sourceSets.main.output.resourcesDir)
from {configurations.compile.collect {zipTree(it)}} from {configurations.compile.collect {zipTree(it)}}
from files(sourceSets.main.resources) destinationDir file("$rootProject.projectDir/dist")
libsDirName = "$rootProject.projectDir/dist"
manifest { manifest.attributes(
attributes 'Main-Class': project.mainClass 'Main-Class': project.mainClass,
} 'Build-Date': new Date().format('YYMMdd')
)
} }
task proguard(dependsOn: dist, type: proguard.gradle.ProGuardTask) { task proguard(dependsOn: dist, type: proguard.gradle.ProGuardTask) {

View File

@ -22,7 +22,7 @@ import java.util.concurrent.TimeUnit;
*/ */
public final class Main { public final class Main {
public static final String VERSION = "1.3.0"; public static final String VERSION = "1.3.0_" + Gen.BUILD_DATE;
private static String[] ownlangArgs = new String[0]; private static String[] ownlangArgs = new String[0];