Permalink
4fcb489 Nov 13, 2013
157 lines (129 sloc) 3.98 KB
/*
* Copyright 2011- the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
apply plugin: 'groovy'
apply plugin: 'maven'
apply plugin: 'signing'
archivesBaseName = 'gradle-executable-jar-plugin'
group = 'net.nisgits.gradle'
version = calculateVersion()
sourceCompatibility = 1.6
targetCompatibility = 1.6
repositories {
mavenCentral()
}
dependencies {
compile gradleApi()
compile "org.codehaus.groovy:groovy-all:1.8.6"
testCompile 'org.spockframework:spock-core:0.5-groovy-1.8'
}
task integrationTest(type: GradleBuild, dependsOn: build) {
dir = 'src/samples'
tasks = ['clean', 'build']
}
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives sourcesJar
archives javadocJar
}
if (project.hasProperty('sign')) {
signing {
sign configurations.archives
}
}
ext.defaultProject = {
name 'Gradle Executable Jar plugin'
// packaging 'jar' (Packaging is set later through direct modification of the xml)
description 'The Gradle Executable Jar plugin creates executable jars with all dependencies embedded.'
url 'https://github.com/stigkj/gradle-executable-jar-plugin'
inceptionYear '2011'
scm {
developerConnection 'git@github.com:stigkj/gradle-executable-jar-plugin.git'
connection 'git://github.com/stigkj/gradle-executable-jar-plugin.git'
url 'https://github.com/stigkj/gradle-executable-jar-plugin'
}
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
distribution 'repo'
}
}
developers {
developer {
id 'stigkj'
name 'Stig Kleppe-Jørgensen'
email 'from.gradle-execjar@nisgits.net'
roles {
role 'Developer'
}
timezone '+1'
}
}
}
ext.fixedProject = {
project defaultProject
withXml {
def project = it.asNode()
project.version[0] + {
packaging 'jar'
}
}
}
install.repositories.mavenInstaller {
pom fixedProject
if (project.hasProperty('sign')) {
beforeDeployment { deployment ->
signPom(deployment)
}
}
}
uploadArchives.repositories.mavenDeployer {
pom fixedProject
uniqueVersion = false
if (project.hasProperty('sign')) {
beforeDeployment { deployment ->
signPom(deployment)
}
}
if (!project.hasProperty('sonatypeUsername')) sonatypeUsername = ''
if (!project.hasProperty('sonatypePassword')) sonatypePassword = ''
snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
authentication(userName: sonatypeUsername, password: sonatypePassword)
}
repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
authentication(userName: sonatypeUsername, password: sonatypePassword)
}
}
def calculateVersion() {
def gitDescribe = "git describe".execute()
int rc = gitDescribe.waitFor()
if (rc != 0) {
throw new IllegalStateException("Could not execute 'git describe': ${gitDescribe.err.text}")
}
def (version, extra) = gitDescribe.in.text.tokenize('-')
if (extra) {
"${version}-SNAPSHOT"
} else {
version
}
}