Files

131 lines
3.7 KiB
Groovy

plugins {
id 'java'
id 'application'
id 'maven-publish'
id 'signing'
id 'org.graalvm.buildtools.native' version '1.1.14'
}
ext.isSnapshotVersion = version.endsWith("SNAPSHOT")
ext.isReleaseVersion = !ext.isSnapshotVersion
java {
sourceCompatibility = JavaVersion.VERSION_25
targetCompatibility = JavaVersion.VERSION_25
}
repositories {
mavenCentral()
}
dependencies {
testImplementation 'junit:junit:4.13.2'
}
tasks.withType(JavaCompile).configureEach {
options.compilerArgs += ['--module-path', classpath.asPath]
options.javaModuleVersion = project.version.toString()
}
application {
mainClass = 'org.applecommander.shrinkit.NufxScan'
}
jar {
manifest {
attributes(
'Main-Class': application.mainClass,
'Implementation-Title': 'ShrinkItArchive',
'Implementation-Version': archiveVersion
)
}
}
javadoc {
title = "ShrinkItArchive ${project.version}"
source = sourceSets.main.allJava
options.addStringOption('Xdoclint:none', '-quiet')
}
tasks.register('javadocJar', Jar) {
archiveClassifier = 'javadoc'
from javadoc
}
tasks.register('sourcesJar', Jar) {
archiveClassifier = 'sources'
from sourceSets.main.allSource
}
tasks.named("assemble") {
dependsOn("javadocJar")
dependsOn("sourcesJar")
}
publishing {
publications {
mavenJava(MavenPublication) {
groupId = "org.applecommander"
artifactId = "ShrinkItArchive"
from components.java
artifact sourcesJar
artifact javadocJar
pom {
name = 'ShrinkItArchive'
description = 'A Java library for managing Apple II ShrinkIt archives.'
url = 'https://applecommander.github.io/'
licenses {
license {
name = 'The GNU General Public License (GPL) Version 2, June 1991'
url = 'https://www.gnu.org/licenses/gpl-2.0.html'
}
}
developers {
developer {
id = 'robgreene'
name = 'Rob Greene'
email = 'robgreene@gmail.com'
}
}
scm {
connection = 'scm:git:https://github.com/AppleCommander/ShrinkItArchive.git'
developerConnection = 'scm:git:git@github.com:AppleCommander/ShrinkItArchive.git'
url = 'https://github.com/AppleCommander/ShrinkItArchive'
}
}
repositories {
maven {
def releasesRepoUrl = "https://ossrh-staging-api.central.sonatype.com/service/local/staging/deploy/maven2"
def snapshotsRepoUrl = "https://ossrh-staging-api.central.sonatype.com/content/repositories/snapshots/"
url = isSnapshotVersion ? snapshotsRepoUrl : releasesRepoUrl
credentials {
username = findProperty('ossrhUsername')
password = findProperty('ossrhPassword')
}
}
}
}
}
}
signing {
def signingKey = findProperty("signingKey")
def signingPassword = findProperty("signingPassword")
def signingKeyId = findProperty("signingKeyId")
useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword)
sign publishing.publications.mavenJava
}
graalvmNative {
String osName = System.getProperty('os.name').toLowerCase().split()[0]
String osArch = System.getProperty('os.arch').toLowerCase().split()[0]
binaries {
named("main") {
imageName.set("NufxScan-${osName}-${osArch}-${project.version}")
}
}
}