mobibot/build.gradle

152 lines
No EOL
3.9 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'
final def packageName = 'net.thauvin.erik.mobibot'
final def deployDir = 'deploy'
def isRelease = 'release' in gradle.startParameter.taskNames
final def semverJar = 'net.thauvin.erik:semver:1.0.1'
def getVersion(isIncrement = false) {
final def propsFile = 'version.properties'
final def majorKey = 'version.major'
final def minorKey = 'version.minor'
final def patchKey = 'version.patch'
final def metaKey = 'version.buildmeta'
final 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 { final stream -> p.load(stream) }
final def metadata = p.getProperty(metaKey, '')
final 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.10.0'
compile 'org.apache.logging.log4j:log4j-core:2.10.0'
compile 'org.apache.logging.log4j:log4j-slf4j-impl:2.10.0'
compile 'commons-cli:commons-cli:1.4'
compile 'commons-net:commons-net:3.6'
compile 'com.squareup.okhttp3:okhttp:3.9.1'
compile 'com.rometools:rome:1.9.0'
compile 'org.json:json:20171018'
compile 'org.ostermiller:utils:1.07.00'
compile 'org.jsoup:jsoup:1.11.2'
compile 'net.objecthunter:exp4j:0.4.8'
compile 'org.twitter4j:twitter4j-core:4.0.6'
compile 'net.thauvin.erik:pinboard-poster:0.9.3'
// https://bitbucket.org/akapribot/owm-japis
compile files('lib/owm-japis-2.5.0.5.jar')
compileOnly semverJar
testCompile 'org.testng:testng:6.13.1'
testCompile 'org.assertj:assertj-core:3.9.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
}
}