Files
allwpilib/shared/java/javacommon.gradle

137 lines
2.8 KiB
Groovy
Raw Normal View History

2018-04-29 13:29:07 -07:00
apply plugin: 'maven-publish'
apply plugin: 'edu.wpi.first.wpilib.versioning.WPILibVersioningPlugin'
apply plugin: 'java'
apply plugin: 'net.ltgt.errorprone'
apply plugin: 'pmd'
if (!hasProperty('releaseType')) {
WPILibVersion {
releaseType = 'dev'
}
}
def pubVersion
if (project.hasProperty("publishVersion")) {
pubVersion = project.publishVersion
} else {
pubVersion = WPILibVersion.version
}
def baseArtifactId = project.baseId
def artifactGroupId = project.groupId
def javaBaseName = "_GROUP_edu_wpi_first_${project.baseId}_ID_${project.baseId}-java_CLS"
def outputsFolder = file("$project.buildDir/outputs")
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
task outputJar(type: Jar, dependsOn: classes) {
baseName javaBaseName
destinationDir outputsFolder
from sourceSets.main.output
}
task outputSourcesJar(type: Jar, dependsOn: classes) {
baseName javaBaseName
destinationDir outputsFolder
classifier = 'sources'
from sourceSets.main.allSource
}
task outputJavadocJar(type: Jar, dependsOn: javadoc) {
baseName javaBaseName
destinationDir outputsFolder
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives sourcesJar
archives javadocJar
archives outputJar
archives outputSourcesJar
archives outputJavadocJar
}
addTaskToCopyAllOutputs(outputSourcesJar)
addTaskToCopyAllOutputs(outputJavadocJar)
addTaskToCopyAllOutputs(outputJar)
build.dependsOn outputSourcesJar
build.dependsOn outputJavadocJar
build.dependsOn outputJar
project(':').libraryBuild.dependsOn build
publishing {
publications {
java(MavenPublication) {
artifact jar
artifact sourcesJar
artifact javadocJar
artifactId = "${baseArtifactId}-java"
groupId artifactGroupId
version pubVersion
}
}
}
test {
testLogging {
events "failed"
exceptionFormat "full"
}
}
if (project.hasProperty('onlyAthena')) {
test.enabled = false
}
pmd {
sourceSets = [sourceSets.main]
consoleOutput = true
reportsDir = file("$project.buildDir/reports/pmd")
ruleSetFiles = files(new File(rootDir, "styleguide/pmd-ruleset.xml"))
ruleSets = []
}
repositories {
mavenCentral()
}
configurations.errorprone {
resolutionStrategy.force 'com.google.errorprone:error_prone_core:2.0.9'
}
sourceSets {
dev
}
compileJava {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
dependencies {
testCompile 'junit:junit:4.12'
devCompile sourceSets.main.output
}
task run(type: JavaExec) {
classpath = sourceSets.dev.runtimeClasspath
main = project.devMain
}
build.dependsOn devClasses