143 lines
No EOL
3.7 KiB
Groovy
143 lines
No EOL
3.7 KiB
Groovy
plugins {
|
|
id "com.ewerk.gradle.plugins.annotation-processor" version "1.0.2"
|
|
id "com.github.ben-manes.versions" version "0.13.0"
|
|
}
|
|
|
|
apply plugin: 'java'
|
|
apply plugin: 'idea'
|
|
apply plugin: 'application'
|
|
|
|
defaultTasks 'deploy'
|
|
|
|
def packageName = 'net.thauvin.erik.mobibot'
|
|
def deployDir = 'deploy'
|
|
def isRelease = 'release' in gradle.startParameter.taskNames
|
|
|
|
def getVersion(isIncrement = false) {
|
|
def propsFile = 'version.properties'
|
|
def majorKey = 'version.major'
|
|
def minorKey = 'version.minor'
|
|
def patchKey = 'version.patch'
|
|
def metaKey = 'version.buildmeta'
|
|
def preKey = 'version.prerelease'
|
|
if (isIncrement) {
|
|
ant.propertyfile(file: propsFile) {
|
|
entry(key: patchKey,
|
|
type: 'int',
|
|
default: '-1',
|
|
operation: '+')
|
|
}
|
|
}
|
|
def p = new Properties()
|
|
file(propsFile).withInputStream { stream -> p.load(stream) }
|
|
def metadata = p.getProperty(metaKey, '')
|
|
def prerelease = p.getProperty(preKey, '')
|
|
return (p.getProperty(majorKey, '1') + '.' + p.getProperty(minorKey, '0') + '.' + p.getProperty(patchKey, '0') +
|
|
(prerelease.length() > 0 ? '-' + prerelease : '') + (metadata.length() > 0 ? '+' + metadata : ''))
|
|
}
|
|
|
|
version = getVersion()
|
|
|
|
mainClassName = packageName + '.Mobibot'
|
|
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
|
|
|
|
repositories {
|
|
mavenLocal()
|
|
mavenCentral()
|
|
jcenter()
|
|
}
|
|
|
|
dependencies {
|
|
compile 'log4j:log4j:1.2.17@jar'
|
|
|
|
compile 'pircbot:pircbot:1.5.0'
|
|
|
|
compile 'commons-codec:commons-codec:1.10'
|
|
compile 'commons-logging:commons-logging:1.2'
|
|
compile 'commons-net:commons-net:3.5'
|
|
compile 'commons-cli:commons-cli:1.3.1'
|
|
compile 'commons-httpclient:commons-httpclient:3.1'
|
|
|
|
compile 'oro:oro:2.0.8'
|
|
|
|
compile 'org.jsoup:jsoup:1.9.2'
|
|
compile 'com.rometools:rome:1.6.1'
|
|
compile 'org.slf4j:slf4j-log4j12:1.7.21'
|
|
compile 'org.json:json:20160212'
|
|
compile 'org.ostermiller:utils:1.07.00'
|
|
|
|
compile 'net.sourceforge.jweather:jweather:0.3.0@jar'
|
|
compile 'net.objecthunter:exp4j:0.4.7'
|
|
|
|
compile 'org.twitter4j:twitter4j-core:4.0.4'
|
|
compile 'net.sf.delicious-java:delicious:1.14'
|
|
|
|
compileOnly 'net.thauvin.erik:semver:0.9.6-beta'
|
|
}
|
|
|
|
annotationProcessor {
|
|
project.version = getVersion(isRelease)
|
|
library 'net.thauvin.erik:semver:0.9.6-beta'
|
|
processor 'net.thauvin.erik.semver.VersionProcessor'
|
|
}
|
|
|
|
compileJava {
|
|
options.compilerArgs << '-proc:none' << '-Xlint:unchecked' << '-Xlint:deprecation'
|
|
}
|
|
|
|
javadoc {
|
|
options.tags = ['created']
|
|
options.author = true
|
|
options.links('http://www.jibble.org/javadocs/pircbot/', 'http://docs.oracle.com/javase/8/docs/api/')
|
|
}
|
|
|
|
jar {
|
|
manifest.attributes('Main-Class': mainClassName,
|
|
'Class-Path': '. ./lib/' + configurations.compile.collect { it.getName() }.join(' ./lib/'))
|
|
|
|
version = null
|
|
}
|
|
|
|
clean {
|
|
delete deployDir
|
|
}
|
|
|
|
run {
|
|
args '--v'
|
|
}
|
|
|
|
task wrapper(type: Wrapper) {
|
|
gradleVersion = gradle.gradleVersion
|
|
}
|
|
|
|
task copyToDeploy(type: Copy) {
|
|
from('properties') {
|
|
include '*.properties'
|
|
}
|
|
from jar
|
|
into deployDir
|
|
}
|
|
|
|
task copyToDeployLib(type: Copy) {
|
|
from configurations.runtime
|
|
into deployDir + '/lib'
|
|
}
|
|
|
|
task deploy(dependsOn: ['build']) {
|
|
description = 'Copies all needed files to the ${deployDir} directory.'
|
|
group = 'Publishing'
|
|
outputs.dir deployDir
|
|
inputs.files copyToDeploy
|
|
inputs.files copyToDeployLib
|
|
doLast {
|
|
file(deployDir + '/logs').mkdir()
|
|
}
|
|
mustRunAfter clean
|
|
}
|
|
|
|
|
|
task release(dependsOn: ['wrapper', 'clean', 'deploy']) << {
|
|
group = 'Publishing'
|
|
description = 'Releases new version.'
|
|
isRelease = true
|
|
} |