mobibot/build.gradle

152 lines
No EOL
3.8 KiB
Groovy

plugins {
id "com.ewerk.gradle.plugins.annotation-processor" version "1.0.4"
id "com.github.ben-manes.versions" version "0.17.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 semverJar = 'net.thauvin.erik:semver:1.0.1'
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 'pircbot:pircbot:1.5.0'
compileOnly 'pircbot:pircbot:1.5.0:sources'
compile 'org.apache.logging.log4j:log4j-api:2.9.1'
compile 'org.apache.logging.log4j:log4j-core:2.9.1'
compile 'org.apache.logging.log4j:log4j-slf4j-impl:2.9.1'
compile 'commons-cli:commons-cli:1.4'
compile 'commons-net:commons-net:3.6'
compile 'com.squareup.okhttp3:okhttp:3.9.0'
compile 'com.rometools:rome:1.8.0'
compile 'org.json:json:20171018'
compile 'org.ostermiller:utils:1.07.00'
compile 'org.jsoup:jsoup:1.10.3'
compile 'net.objecthunter:exp4j:0.4.8'
compile 'org.twitter4j:twitter4j-core:4.0.6'
compile 'net.thauvin.erik:pinboard-poster:0.9.1'
// https://bitbucket.org/akapribot/owm-japis
compile files('lib/owm-japis-2.5.0.5.jar')
compileOnly semverJar
testCompile 'org.testng:testng:6.12'
testCompile 'org.assertj:assertj-core:3.8.0'
}
test {
useTestNG()
}
annotationProcessor {
project.version = getVersion(isRelease)
library semverJar
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')
from jar
into deployDir
}
task copyToDeployLib(type: Copy) {
from configurations.compile
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']) {
doLast {
group = 'Publishing'
description = 'Releases new version.'
isRelease = true
}
}