blob: 143473a2d35e241954edaec8c482b3270777b7eb [file] [log] [blame]
plugins {
id "net.ltgt.errorprone" version "3.0.1" apply false
id "me.champeau.jmh" version "0.6.8" apply false
id "io.github.reyerizo.gradle.jcstress" version "0.8.14" apply false
}
subprojects {
apply plugin: "checkstyle"
apply plugin: "java-library"
apply plugin: 'maven-publish'
apply plugin: "idea"
apply plugin: "signing"
apply plugin: "net.ltgt.errorprone"
repositories {
maven {
url "https://maven-central.storage-download.googleapis.com/repos/central/data/" }
mavenCentral()
}
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
task javadocJar(type: Jar) {
classifier = 'javadoc'
from javadoc
}
task sourcesJar(type: Jar) {
classifier = 'sources'
from sourceSets.main.allSource
}
checkstyle {
configDirectory = file("$rootDir/buildscripts")
toolVersion = "6.17"
ignoreFailures = false
if (rootProject.hasProperty("checkstyle.ignoreFailures")) {
ignoreFailures = rootProject.properties["checkstyle.ignoreFailures"].toBoolean()
}
}
afterEvaluate {
jar {
manifest {
attributes ('Automatic-Module-Name': moduleName,
"Implementation-Version": archiveVersion.get(),
"Implementation-Title": "PerfMark",
"Implementation-Vendor": "Carl Mastrangelo",
"Implementation-URL": "https://www.perfmark.io/",
"Carl-Is-Awesome": "true")
}
}
}
publishing {
publications {
maven(MavenPublication) {
from components.java
artifact javadocJar
artifact sourcesJar
pom {
name = project.group + ":" + project.name
url = 'https://github.com/perfmark/perfmark'
afterEvaluate {
// description is not available until evaluated.
description = project.description
}
scm {
connection = 'scm:git:https://github.com/perfmark/perfmark.git'
developerConnection = 'scm:git@github.com:perfmark/perfmark.git'
url = 'https://github.com/perfmark/perfmark'
}
licenses {
license {
name = 'Apache 2.0'
url = 'https://opensource.org/licenses/Apache-2.0'
}
}
developers {
developer {
id = "carl-mastrangelo"
name = "Carl Mastrangelo"
email = "carl@carlmastrangelo.com"
url = "https://www.perfmark.io/"
}
}
}
}
}
repositories {
maven {
def stagingUrl = 'https://oss.sonatype.org/service/local/staging/deploy/maven2/'
def releaseUrl = stagingUrl
def snapshotUrl = 'https://oss.sonatype.org/content/repositories/snapshots/'
url = version.endsWith('SNAPSHOT') ? snapshotUrl : releaseUrl
credentials {
if (rootProject.hasProperty('ossrhUsername')
&& rootProject.hasProperty('ossrhPassword')) {
username = rootProject.ossrhUsername
password = rootProject.ossrhPassword
}
}
}
}
}
signing {
required false
sign publishing.publications.maven
}
[publishMavenPublicationToMavenRepository, publishMavenPublicationToMavenLocal]*.onlyIf {
!name.contains("perfmark-examples") && !name.contains("perfmark-api-testing")
&& !name.contains("perfmark-testing") && !name.contains("perfmark-agent")
}
[javadoc]*.onlyIf {
!name.contains("perfmark-java9") && !name.contains("perfmark-examples")
&& !name.contains("perfmark-api-testing") && !name.contains("perfmark-testing")
}
if (rootProject.properties.get('errorProne', true)) {
dependencies {
errorprone 'com.google.errorprone:error_prone_core:2.16'
errorproneJavac 'com.google.errorprone:javac:9+181-r4173-1'
}
} else {
// Disable Error Prone
allprojects {
afterEvaluate { project ->
project.tasks.withType(JavaCompile) {
options.errorprone.enabled = false
}
}
}
}
group = "io.perfmark"
version = "0.26.0"
dependencies {
testImplementation libs.junit
}
}