mobibot/build.gradle

143 lines
3.5 KiB
Groovy

plugins {
id 'java'
id 'idea'
id 'application'
id "com.github.ben-manes.versions" version "0.21.0"
id "net.thauvin.erik.gradle.semver" version "0.9.9-beta"
id "com.github.spotbugs" version "1.7.1"
id "org.sonarqube" version "2.7"
}
import com.github.spotbugs.SpotBugsTask
defaultTasks 'deploy'
final def packageName = 'net.thauvin.erik.mobibot'
final def deployDir = 'deploy'
def isRelease = 'release' in gradle.startParameter.taskNames
final def semverProcessor = "net.thauvin.erik:semver:1.0.1"
mainClassName = packageName + '.Mobibot'
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
compileJava.options.annotationProcessorGeneratedSourcesDirectory = file("${projectDir}/src/generated/java")
repositories {
mavenLocal()
mavenCentral()
jcenter()
}
dependencies {
annotationProcessor semverProcessor
compileOnly semverProcessor
implementation 'pircbot:pircbot:1.5.0'
compileOnly 'pircbot:pircbot:1.5.0:sources'
implementation 'org.apache.logging.log4j:log4j-api:2.11.2'
implementation 'org.apache.logging.log4j:log4j-core:2.11.2'
implementation 'org.apache.logging.log4j:log4j-slf4j-impl:2.11.2'
implementation 'commons-cli:commons-cli:1.4'
implementation 'commons-net:commons-net:3.6'
implementation 'com.squareup.okhttp3:okhttp:3.14.0'
implementation 'com.rometools:rome:1.12.0'
implementation 'org.json:json:20180813'
implementation 'org.ostermiller:utils:1.07.00'
implementation 'org.jsoup:jsoup:1.11.3'
implementation 'net.objecthunter:exp4j:0.4.8'
implementation 'org.twitter4j:twitter4j-core:4.0.7'
implementation 'net.thauvin.erik:pinboard-poster:1.0.0'
implementation 'net.aksingh:owm-japis:2.5.2.3'
testImplementation 'org.testng:testng:6.14.3'
testImplementation 'org.assertj:assertj-core:3.12.2'
//spotbugsPlugins 'com.h3xstream.findsecbugs:findsecbugs-plugin:1.8.0'
compileOnly 'com.github.spotbugs:spotbugs-annotations:3.1.11'
}
test {
useTestNG()
}
compileJava {
dependsOn('incrementBuildMeta')
options.compilerArgs << '-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'
}
incrementBuildMeta {
doFirst {
buildMeta = sprintf("%03d", (buildMeta as Integer) + 1)
}
}
sonarqube {
properties {
property "sonar.projectKey", "ethauvin_mobibot"
}
}
tasks.withType(SpotBugsTask) {
reports {
xml.enabled = false
html.enabled = true
}
excludeFilter = file("$projectDir/config/spotbugs/excludeFilter.xml")
}
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']) {
group = 'Publishing'
description = 'Releases new version.'
}