id 'java-library'
id 'maven-publish'
id 'java-library-distribution'
- id "signing"
id "io.github.gradle-nexus.publish-plugin" version "1.1.0"
- id 'com.palantir.git-version' version "0.12.3"
+ id 'com.palantir.git-version' version "0.13.0"
}
// calculate version string from git tag, hash and commit distance
version = versionDetails().lastTag.substring(1) + '-' + versionDetails().commitDistance + '-' + versionDetails().gitHash + '-SNAPSHOT'
}
+def props = project.file("dictzip-cli/src/main/resources/org/dict/zip/Version.properties")
+task writeVersionFile {
+ def folder = props.getParentFile()
+ if (!folder.exists()) {
+ folder.mkdirs()
+ }
+ props.delete()
+ props.text = "version=" + project.version
+}
+
+jar.dependsOn("writeVersionFile")
+
// common settings
subprojects {
apply plugin: 'jacoco'
apply plugin: 'java'
apply plugin: 'checkstyle'
- apply plugin: 'maven'
apply plugin: 'maven-publish'
- [compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
checkstyle {
- config = resources.text.fromFile("${rootProject.projectDir}/config/checkstyle/checkstyle.xml")
ignoreFailures = true
toolVersion = '6.16.1'
}
}
dependencies {
- testImplementation 'commons-io:commons-io:2.6'
- testImplementation 'org.testng:testng:6.9.10'
+ implementation "org.jetbrains:annotations:23.0.0"
+ testImplementation 'commons-io:commons-io:2.11.0'
+ testImplementation "org.junit.jupiter:junit-jupiter:5.8.2"
+ }
+ test {
+ useJUnitPlatform()
}
- test.useTestNG()
java {
sourceCompatibility = JavaVersion.VERSION_1_8
}
}
+project(':northside-io') {
+ apply plugin: 'java-library'
+ version = rootProject.version
+ dependencies {
+ implementation 'commons-io:commons-io:2.11.0'
+ }
+}
+
project(':dictzip-lib') {
apply plugin: 'java-library'
+ apply plugin: "signing"
version = rootProject.version
- install {
- repositories.mavenInstaller {
- pom.project {
- name = 'dictzip'
- packaging = 'jar'
- description = projectDesc
- url = projectUrl
- version = project.version
- licenses {
- license {
- name = licenseName
- url = licenseUrl
- distribution = 'repo'
- }
- }
- scm {
- url = githubUrl
- connection = "scm:git:${githubUrl}"
- developerConnection = "scm:git:${githubUrl}"
- }
- developers {
- developer {
- id = projectOwner
- name = developerName
- email = developerEmail
- }
- }
- }
- }
+
+ dependencies {
+ testImplementation project(':northside-io')
}
publishing {
mavenJava(MavenPublication) {
from components.java
artifactId = "dictzip"
- groupId = "io.github.dictzip"
pom {
name.set("dictzip")
description.set(projectDesc)
url.set(projectUrl)
licenses {
license {
- name.set("GNU General Public License Version 2+CE")
- url.set("https://www.gnu.org/licenses/old-licenses/gpl-2.0")
+ name.set("GNU General Public License v2.0 w/Classpath exception")
+ url.set("https://www.gnu.org/software/classpath/license.html")
}
}
scm {
}
developers {
developer {
- id = "miurahr"
- name = "Hiroshi Miura"
- email = "miurahr@linux.com"
+ id.set("miurahr")
+ name.set("Hiroshi Miura")
+ email.set("miurahr@linux.com")
}
}
issueManagement {
nexusPublishing {
repositories {
sonatype {
- stagingProfileId = "a1cf138b142cd"
+ stagingProfileId.set("a1cf138b142cd")
nexusUrl.set(uri("https://s01.oss.sonatype.org/service/local/"))
snapshotRepositoryUrl.set(uri("https://s01.oss.sonatype.org/content/repositories/snapshots/"))
username = project.hasProperty('sonatypeUsername') ? project.property('sonatypeUsername') : System.getenv('SONATYPE_USER')
}
signing {
- def signingKey = findProperty("signingKey")
- def signingPassword = findProperty("signingPassword")
- if (signingKey) {
+ if (project.hasProperty("signingKey")) {
+ def signingKey = findProperty("signingKey").toString()
+ def signingPassword = findProperty("signingPassword").toString()
useInMemoryPgpKeys(signingKey, signingPassword)
} else {
useGpgCmd()
dependencies {
implementation project(':dictzip-lib')
implementation 'gnu.getopt:java-getopt:1.0.13'
+ testImplementation project(':northside-io')
}
task mandoc(type: Copy) {
from "doc/dictzip.1.in"
distributions {
main {
- baseName = 'dictzip'
contents {
from('build/docs/dictzip.1') {
into 'docs/man/man1'