build.gradle

This commit is contained in:
MaxKey 2021-11-21 18:50:41 +08:00
parent a22c9f1235
commit 9770d0cb23
3 changed files with 182 additions and 153 deletions

View File

@ -25,8 +25,39 @@ ext {
} }
def libjarsmapper=[
'maxkey-authentication-otp' :'lib',
'maxkey-authentication-captcha' :'lib',
'maxkey-authentication-core' :'lib',
'maxkey-common' :'lib',
'maxkey-core' :'lib',
'maxkey-persistence' :'lib',
'maxkey-protocol-authorize' :'lib',
'maxkey-protocol-cas' :'lib',
'maxkey-protocol-desktop' :'lib',
'maxkey-protocol-extendapi' :'lib',
'maxkey-protocol-formbased' :'lib',
'maxkey-protocol-jwt' :'lib',
'maxkey-protocol-oauth-2.0' :'lib',
'maxkey-protocol-saml-2.0' :'lib',
'maxkey-protocol-tokenbased' :'lib',
'maxkey-web-resources' :'lib',
'maxkey-authentication-social' :'maxkey',
'maxkey-web-maxkey' :'maxkey',
'maxkey-identity-rest' :'maxkey_mgt',
'maxkey-identity-scim' :'maxkey_mgt',
'maxkey-web-mgt' :'maxkey_mgt',
'maxkey-synchronizers' :'maxkey_mgt',
'maxkey-synchronizers-activedirectory' :'maxkey_mgt',
'maxkey-synchronizers-ldap' :'maxkey_mgt',
'maxkey-synchronizers-dingding' :'maxkey_mgt',
'maxkey-synchronizers-workweixin' :'maxkey_mgt',
'maxkey-synchronizers-reorgdept' :'maxkey_mgt',
'maxkey-boot-monitor' :'maxkey_monitor'
]
configurations.all { configurations.all {
transitive = false// transitive = false//
} }
//add support for Java //add support for Java
@ -38,24 +69,23 @@ allprojects {
//apply plugin: "findbugs" //apply plugin: "findbugs"
//apply plugin: "jdepend" //apply plugin: "jdepend"
configurations.all { configurations.all {
transitive = false// transitive = false//
} }
//java Version //java Version
sourceCompatibility = 1.8 sourceCompatibility = 1.8
targetCompatibility = 1.8 targetCompatibility = 1.8
compileJava.options.encoding = 'UTF-8' compileJava.options.encoding = 'UTF-8'
eclipse {
/* eclipse设置
jdt {
File f = file('.settings/org.eclipse.core.resources.prefs')
f.write('eclipse.preferences.version=1\n')
f.append('encoding/<project>=UTF-8') //use UTF-8
}*/
}
/*
eclipse {
eclipse设置
jdt {
File f = file('.settings/org.eclipse.core.resources.prefs')
f.write('eclipse.preferences.version=1\n')
f.append('encoding/<project>=UTF-8') //use UTF-8
}
}
*/
} }
@ -74,34 +104,39 @@ repositories {
} }
// In this section you declare the dependencies for your production and test code
dependencies {
}
subprojects { subprojects {
/* /*
eclipse { eclipse {
eclipse设置 eclipse设置
jdt { jdt {
File f = file('.settings/org.eclipse.core.resources.prefs') File f = file('.settings/org.eclipse.core.resources.prefs')
f.write('eclipse.preferences.version=1\n') f.write('eclipse.preferences.version=1\n')
f.append('encoding/<project>=UTF-8') //use UTF-8 f.append('encoding/<project>=UTF-8') //use UTF-8
} }
} }
*/ */
processResources { processResources {
from ('src/main/resources') { from ('src/main/resources') {
include 'src/main/resources/*.*' include 'src/main/resources/*.*'
} }
} }
sourceSets { sourceSets {
main { main {
java { java {
srcDir 'src/main/java' // srcDir 'src/main/java' //
} }
}
}
repositories { }
}
repositories {
mavenLocal() mavenLocal()
maven { url "https://maven.aliyun.com/repository/central/"} maven { url "https://maven.aliyun.com/repository/central/"}
maven { url "https://maven.aliyun.com/repository/public/"} maven { url "https://maven.aliyun.com/repository/public/"}
@ -120,9 +155,10 @@ subprojects {
mavenCentral() mavenCentral()
} }
//all dependencies //all dependencies
dependencies { dependencies {
//for Test and Compile
//for Test and Compile
testImplementation group: 'junit', name: 'junit', version: "${junitVersion}" testImplementation group: 'junit', name: 'junit', version: "${junitVersion}"
compileOnly group: 'junit', name: 'junit', version: "${junitVersion}" compileOnly group: 'junit', name: 'junit', version: "${junitVersion}"
testImplementation group: 'org.mockito', name: 'mockito-all', version: "${mockitoallVersion}" testImplementation group: 'org.mockito', name: 'mockito-all', version: "${mockitoallVersion}"
@ -407,37 +443,102 @@ subprojects {
jar { jar {
def currentTime = java.time.ZonedDateTime.now() def currentTime = java.time.ZonedDateTime.now()
manifest { manifest {
attributes( attributes(
"Implementation-Title": project.name, "Implementation-Title": project.name,
"Implementation-Vendor": project.vendor, "Implementation-Vendor": project.vendor,
"Created-By": project.author, "Created-By": project.author,
"Implementation-Date": currentTime, "Implementation-Date": currentTime,
"Implementation-Version": project.version "Implementation-Version": project.version
) )
} }
} }
task buildRelease() { tasks.register("buildRelease",Copy) {
dependsOn assemble dependsOn assemble
// // group version
println "subproject " + project.name + ", group " + project.group +" , version " + project.version println "subproject " + project.name + ", group " + project.group +" , version " + project.version
}
assemble.configure { finalizedBy buildRelease } //copy
into "$rootDir/build/maxkey-jars/"
from "$buildDir/libs/"
include '*.jar'
}
tasks.register("copyLibJars",Copy) {
if (libjarsmapper["${project.name}"] != null){
into "$rootDir/build/MaxKey-v${project.version}GA/"+libjarsmapper["${project.name}"]
from "$buildDir/libs/"
include '*.jar'
}
}
assemble.configure { finalizedBy buildRelease,copyLibJars }
}
//copy Dep Jars to /build/maxkey-depjars,only maxkey-common deps
project('maxkey-common') {
task createReleaseDir(type: Copy){
def paths = ["$rootDir/build/MaxKey-v${project.version}GA",
"$rootDir/build/MaxKey-v${project.version}GA/maxkey",
"$rootDir/build/MaxKey-v${project.version}GA/maxkey_mgt",
"$rootDir/build/MaxKey-v${project.version}GA/maxkey_monitor",
"$rootDir/build/MaxKey-v${project.version}GA/lib"];
//createDir闭包
paths.forEach(){path->
File dir=new File(path);
if (!dir.exists()){
print("create "+path+"\n")
dir.mkdirs();
}
};
}
task copyDepJars (type: Copy){
dependsOn assemble
println "copy Dep Jars to $rootDir/build/MaxKey-v${project.version}GA/lib"
//copy runtime
from configurations.runtimeClasspath
into "$rootDir/build/MaxKey-v${project.version}GA/lib";
}
build.configure { finalizedBy copyDepJars }
}
//copy Dep Jars to /build/maxkey-depjars,only maxkey-boot-monitor deps
project('maxkey-webs:maxkey-boot-monitor') {
task copyDepJars(type:Copy) {
dependsOn assemble
// group version
println "subproject " + project.name + ", group " + project.group +" , version " + project.version
//copy runtime
from configurations.runtimeClasspath
into "$rootDir/build/MaxKey-v${project.version}GA/maxkey_monitor";
}
build.configure { finalizedBy copyDepJars }
} }
tasks.register("buildRelease") { tasks.register("buildRelease") {
// group version dependsOn 'copyShellScript','copyWindowsShellScript'
println "Root project " + project.name + ", group " + project.group +" , version " + project.version
// to build文件绝对路径 // group version
println "Root project projectDir " + project.projectDir +" to " + project.buildDir println "Root project " + project.name + ", group " + project.group +" , version " + project.version
// to build文件绝对路径
println "Root project projectDir " + project.projectDir +" to " + project.buildDir
}
tasks.register("copyShellScript",Copy) {
println "project copyMaxKeyShellScript .";
from "$rootDir/shellscript/"
into "$rootDir/build/MaxKey-v${project.version}GA/shellscript/";
}
tasks.register("copyWindowsShellScript",Copy) {
println "project copyMaxKeyWindowsShellScript .";
from "$rootDir/shellscript/windows"
into "$rootDir/build/MaxKey-v${project.version}GA/";
} }
build.configure { finalizedBy buildRelease } build.configure { finalizedBy buildRelease }
// In this section you declare the dependencies for your production and test code
dependencies {
}

View File

@ -1,42 +1,7 @@
buildscript {
repositories {
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/'}
}
}
plugins {
id 'java'
id 'com.google.cloud.tools.jib' version "${jibGradlePluginVersion}"
id 'org.springframework.boot' version "${springBootVersion}"
}
apply plugin: 'com.google.cloud.tools.jib'
description = "maxkey-web-maxkey" description = "maxkey-web-maxkey"
//docker //add support for Java
jib { apply plugin: 'java'
from {
image = "${jibFromImage}"
}
to {
//https://registry.hub.docker.com/repository/docker/maxkeytop/maxkey
image = "${jibToImage}/maxkey"
tags = ["${project.version}".toString(), 'latest']
auth {
username = "${jibToAuthUsername}"
password = "${jibToAuthPassword}"
}
}
container {
mainClass = "org.maxkey.MaxKeyApplication"
jvmFlags = ['-Dfile.encoding=utf-8', '-Dserver.port=443','-Duser.timezone=Asia/Shanghai']
ports = ['443']
}
}
//build.configure { finalizedBy jib }
dependencies { dependencies {
implementation project(":maxkey-common") implementation project(":maxkey-common")
@ -58,5 +23,4 @@ dependencies {
implementation project(":maxkey-protocols:maxkey-protocol-jwt") implementation project(":maxkey-protocols:maxkey-protocol-jwt")
implementation project(":maxkey-webs:maxkey-web-resources") implementation project(":maxkey-webs:maxkey-web-resources")
} }

View File

@ -1,42 +1,7 @@
buildscript {
repositories {
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/'}
}
}
//docker
plugins {
id 'java'
id 'com.google.cloud.tools.jib' version "${jibGradlePluginVersion}"
id 'org.springframework.boot' version "${springBootVersion}"
}
apply plugin: 'com.google.cloud.tools.jib'
description = "maxkey-web-mgt" description = "maxkey-web-mgt"
jib { //add support for Java
from { apply plugin: 'java'
image = "${jibFromImage}"
}
to {
//https://registry.hub.docker.com/repository/docker/maxkeytop/maxkey-mgt
image = "${jibToImage}/maxkey-mgt"
tags = ["${project.version}".toString(), 'latest']
auth {
username = "${jibToAuthUsername}"
password = "${jibToAuthPassword}"
}
}
container {
mainClass = "org.maxkey.MaxKeyMgtApplication"
jvmFlags = ['-Dfile.encoding=utf-8', '-Dserver.port=9527','-Duser.timezone=Asia/Shanghai']
ports = ['9527']
}
}
//build.configure { finalizedBy jib }
dependencies { dependencies {
implementation project(":maxkey-common") implementation project(":maxkey-common")
@ -60,5 +25,4 @@ dependencies {
implementation project(":maxkey-identitys:maxkey-synchronizers-dingding") implementation project(":maxkey-identitys:maxkey-synchronizers-dingding")
implementation project(":maxkey-webs:maxkey-web-resources") implementation project(":maxkey-webs:maxkey-web-resources")
} }