cp/build.gradle

192 lines
5.3 KiB
Groovy

plugins {
id 'java'
id 'java-library'
id 'maven-publish'
id 'signing'
}
group = "org.bdware.sc"
version = "1.7.1"
repositories {
mavenCentral()
mavenLocal()
}
sourceSets {
main {
java {
srcDirs 'src/main/java', 'src/main/debugger', 'src/main/data-mask'
}
resources {
srcDir 'src/main/resources'
}
}
test {
java {
srcDirs 'src/test/java', 'src/test/data-mask'
}
resources {
srcDir 'src/test/resources'
}
}
}
dependencies {
api project(":common")
api project(":mockjava")
implementation 'org.apache.commons:commons-lang3:3.0'
implementation 'com.atlassian.commonmark:commonmark:0.17.0'
implementation 'com.idealista:format-preserving-encryption:1.0.0'
implementation 'org.apache.commons:commons-math3:3.6.1'
implementation 'org.codehaus.groovy:groovy-all:3.0.8'
implementation 'io.grpc:grpc-all:1.41.0'
implementation 'org.jsoup:jsoup:1.14.2'
implementation 'com.sun.mail:javax.mail:1.6.2'
implementation 'com.squareup.okhttp3:okhttp:4.9.1'
implementation 'org.bdware.bdcontract:sdk-java:1.0.2'
implementation 'org.bdware.doip:doip-audit-tool:1.1.3'
implementation fileTree(dir: 'lib', include: '*.jar')
testImplementation 'junit:junit:4.13.2'
}
tasks.jar.setDuplicatesStrategy(DuplicatesStrategy.INCLUDE)
task classJar(type: Jar, dependsOn: classes) {
classifier = "jar"
}
jar {
String libs = ''
configurations.runtimeClasspath.each {
libs = libs + " libs/" + it.name
}
from {
// uncomment this when publish,
//while develop at local use "false"
configurations.runtimeClasspath.filter {
it.getAbsolutePath().contains("/lib/")
// false
}.collect {
it.isDirectory() ? it : zipTree(it)
}
}
manifest {
attributes 'Manifest-Version': project.version
attributes 'Main-Class': 'org.bdware.sc.ContractProcess'
attributes 'Class-Path': libs
}
}
tasks.withType(Copy).all {
duplicatesStrategy = DuplicatesStrategy.INCLUDE
}
tasks.withType(Jar).all {
duplicatesStrategy = DuplicatesStrategy.INCLUDE
}
task copyLibs(type: Copy, dependsOn: ":common:jar") {
into "./build/output/libs/"
from configurations.runtimeClasspath
}
task copyJar(type: Copy, dependsOn: [":cp:jar", ":cp:copyLog4jProp"]) {
into "./build/output/"
from "./build/libs/$project.name-${version}.jar"
rename { String fileName -> "yjs.jar" }
}
task copyLog4jProp(type: Copy) {
into "./build/output/"
from "./src/main/resources/log4j2.debug.properties"
from "./src/main/resources/log4j2.properties"
}
task buildBundle(dependsOn: [":cp:copyLibs", ":cp:copyJar"]) {
doLast {
println "buildBundle in ./build/output/ successfully"
}
}
task sourceJar(type: Jar, dependsOn: classes) {
archiveClassifier = "sources"
classifier = "sources"
from sourceSets.main.allSource
}
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none', '-quiet')
}
task javadocJar(type: Jar, dependsOn: javadoc) {
archiveClassifier = 'javadoc'
classifier = "javadoc"
exclude {
details -> details.file.getAbsolutePath().contains("/gm/")
}
from javadoc.destinationDir
}
//shadowJar {
// // classifier = "jar"
// dependencies {
// include(dependency(fileTree(dir: 'lib', include: '*.jar')))
//// exclude(dependency('com.google.code.gson:gson:2.8.6'))
//// relocate 'com.google.code.gson', 'irs.com.google.code.gson'
// }
//}
publishing {
publications {
mavenJava(MavenPublication) {
groupId project.group
artifactId "cp"
version "${version}"
from components.java
artifact sourceJar
artifact javadocJar
artifact classJar
// artifact customFatJar
pom {
name = "bdware-cp"
description = "cp"
url = "https://gitee.com/BDWare/cp"
licenses {
license {
name = "GPL v2"
url = "https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt"
}
}
developers {
developer {
id = "dataware"
email = "caihq@pku.edu.cn"
}
}
scm {
connection = "scm:git:https://gitee.com/BDWare/cp.git"
developerConnection = "scm:git:https://gitee.com/BDWare/cp.git"
url = "https://gitee.com/BDWare/cp"
}
}
}
}
repositories {
maven {
name 'bdwareSnapshotRepository'
url 'https://oss.sonatype.org/content/repositories/snapshots'
// credentials {
// username = "${NEXUS_USERNAME}"
// password = "${NEXUS_PASSWORD}"
// }
}
maven {
name 'bdwareRepository'
url 'https://oss.sonatype.org/service/local/staging/deploy/maven2'
// credentials {
// username = "${NEXUS_USERNAME}"
// password = "${NEXUS_PASSWORD}"
// }
}
}
}
signing {
sign publishing.publications.mavenJava
}