refactor gradle version system for release, snapshots and non-git snapshots

This commit is contained in:
Connor Tumbleson 2014-02-04 09:54:00 -06:00
parent c80e906f53
commit e3ed1a448a
3 changed files with 56 additions and 37 deletions

View File

@ -13,8 +13,6 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
version = apktoolversion
apply plugin: 'fatjar' apply plugin: 'fatjar'
configurations { configurations {
@ -35,7 +33,7 @@ gradle.taskGraph.whenReady {
} }
task proguard(type: JavaExec, dependsOn: fatJar) { task proguard(type: JavaExec, dependsOn: fatJar) {
def outFile = jar.destinationDir.getPath() + '/' + jar.baseName + '-' + jar.version + '-small' + '.' + jar.extension def outFile = jar.destinationDir.getPath() + '/' + "apktool" + '-' + project.apktool_version + '-small' + '.' + jar.extension
inputs.file jar.archivePath inputs.file jar.archivePath
outputs.file outFile outputs.file outFile

View File

@ -16,26 +16,11 @@
import org.apache.tools.ant.filters.* import org.apache.tools.ant.filters.*
// release
if (!('release' in gradle.startParameter.taskNames)) {
ant.loadfile(srcFile: "../../.git/refs/heads/master", property: fullrev, failonerror: false);
if (ant.properties[fullrev] == null) {
gitrev_version = "SNAPSHOT_DEV";
println "Building SNAPSHOT (no .git folder found)";
} else {
gitrev_version = ant.properties[fullrev].substring(0,10);
println "Building SNAPSHOT: " + gitrev_version;
}
} else {
gitrev_version = '';
println "Building RELEASE: " + apktoolversion;
}
processResources { processResources {
from('src/main/resources/properties') { from('src/main/resources/properties') {
include '**/*.properties' include '**/*.properties'
into 'properties' into 'properties'
filter(ReplaceTokens, tokens: [version: apktoolversion, gitrev: gitrev_version] ) filter(ReplaceTokens, tokens: [version: project.apktool_version, gitrev: project.hash] )
} }
from('src/main/resources/') { from('src/main/resources/') {
include '**/*.jar' include '**/*.jar'
@ -43,10 +28,12 @@ processResources {
includeEmptyDirs = false includeEmptyDirs = false
} }
dependencies { dependencies {
compile ("junit:junit:4.10") { compile ("junit:junit:4.10") {
exclude(module: 'hamcrest-core') exclude(module: 'hamcrest-core')
} }
compile project(':brut.j.dir'), compile project(':brut.j.dir'),
project(':brut.j.util'), project(':brut.j.util'),
project(':brut.j.common'), project(':brut.j.common'),

View File

@ -13,14 +13,60 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
apply plugin: 'java' apply plugin: 'java'
apply plugin: 'maven' apply plugin: 'maven'
apply plugin: 'license'
ext.apktoolversion = '2.0.0-Beta8' def apktoolversion_major = '2.0.0'
ext.fullrev = ''; def apktoolversion_minor = 'Beta8';
ext.gitrev_version = '';
if (!('release' in gradle.startParameter.taskNames)) {
def hash = getCheckedOutGitCommitHash();
if (hash == null) {
project.ext.set("hash", "dirty")
project.ext.set("apktool_version", apktoolversion_major + "-dirty")
println "Building SNAPSHOT (no .git folder found)";
} else {
project.ext.set("hash", hash);
project.ext.set("apktool_version", apktoolversion_major + "-" + hash + "-SNAPSHOT");
println "Building SNAPSHOT (" + getCheckedOutBranch() + "): " + hash;
}
} else {
project.ext.set("hash", "")
project.ext.set("apktool_version", apktoolversion_major + "-" + apktoolversion_minor);
println "Building RELEASE (" + getCheckedOutBranch() + "): " + apktoolversion_major + "-" + apktoolversion_minor;
}
// https://gist.github.com/JonasGroeger/7620911
def getCheckedOutGitCommitHash() {
def gitFolder = "$projectDir/.git/"
def takeFromHash = 6
def head
try {
head = new File(gitFolder + "HEAD").text.split(":")
} catch(Exception e) {
return null;
}
def isCommit = head.length == 1
if(isCommit) return head[0].trim().take(takeFromHash)
def refHead = new File(gitFolder + head[1].trim())
refHead.text.trim().take takeFromHash
}
def getCheckedOutBranch() {
def gitFolder = "$projectDir/.git/"
def head
try {
head = new File(gitFolder + "HEAD").text.split("/")
} catch(Exception e) {
return "";
}
return head[2].trim();
}
repositories { repositories {
mavenCentral() mavenCentral()
@ -37,22 +83,11 @@ build.doFirst {
} }
} }
class Compatibility {
String version
Compatibility(String versionValue) {
def matcher = (versionValue =~ /Java (\d)/)
version = matcher[0][1]
}
String toString() { version }
}
task wrapper(type: Wrapper) { task wrapper(type: Wrapper) {
gradleVersion = '1.8' gradleVersion = '1.8'
} }
// If anyone uses this outside of GoogleCode (Apktool) developers. I will hunt you down and hurt you. // used for official releases only. Please don't use
// This is for official releases only.
task release { task release {
} }
@ -61,7 +96,6 @@ buildscript {
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
classpath 'nl.javadude.gradle.plugins:license-gradle-plugin:0.5.0'
classpath 'eu.appsatori:gradle-fatjar-plugin:0.2-rc1' classpath 'eu.appsatori:gradle-fatjar-plugin:0.2-rc1'
} }
} }