/* * Copyright [2021] [MaxKey of copyright http://www.maxkey.top] * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * MaxKey build file was auto generated by running the Gradle release.bat */ defaultTasks "clean", "build" //Version define 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-synchronizer' :'maxkey_mgt', 'maxkey-synchronizer-activedirectory' :'maxkey_mgt', 'maxkey-synchronizer-ldap' :'maxkey_mgt', 'maxkey-synchronizer-dingtalk' :'maxkey_mgt', 'maxkey-synchronizer-workweixin' :'maxkey_mgt', 'maxkey-synchronizer-reorgdept' :'maxkey_mgt', 'maxkey-boot-monitor' :'maxkey_monitor' ] configurations.all { transitive = false// 为本依赖关闭依赖传递特性 } //add support for Java //apply plugin: 'java' allprojects { apply plugin: "java" apply plugin: "eclipse" //apply plugin: "pmd" //apply plugin: "findbugs" //apply plugin: "jdepend" configurations.all { transitive = false// 为本依赖关闭依赖传递特性 } //java Version sourceCompatibility = 1.8 targetCompatibility = 1.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/=UTF-8') //use UTF-8 }*/ } } buildscript { repositories { mavenCentral() } } // In this section you declare where to find the dependencies of your project repositories { // Use 'jcenter' for resolving your dependencies. // You can declare any Maven/Ivy/file repository here. mavenCentral() } // In this section you declare the dependencies for your production and test code dependencies { } subprojects { /* eclipse { 第一次时请注释这段eclipse设置,可能报错,设置工程字符集 jdt { File f = file('.settings/org.eclipse.core.resources.prefs') f.write('eclipse.preferences.version=1\n') f.append('encoding/=UTF-8') //use UTF-8 } } */ processResources { from ('src/main/resources') { include 'src/main/resources/*.*' } } sourceSets { main { java { srcDir 'src/main/java' // 指定源码目录 } } } repositories { mavenLocal() maven { url "https://maven.aliyun.com/repository/central/"} maven { url "https://maven.aliyun.com/repository/public/"} maven { url "https://maven.aliyun.com/repository/spring/"} maven { url "https://repo.spring.io/plugins-release/" } maven { url "https://repo.spring.io/milestone" } maven { url "https://repo1.maven.org/maven2/" } maven { url "https://build.shibboleth.net/nexus/content/repositories/releases/" } maven { url "https://mvnrepository.com/repos/central/" } maven { url "https://jcenter.bintray.com" } maven { url "https://mvn.gt.igexin.com/nexus/content/repositories/releases"} maven { url "https://plugins.gradle.org/m2/" } maven { url "https://oss.sonatype.org/content/repositories/releases/" } maven { url "https://maven.repository.redhat.com/ga/" } maven { url "https://repository.apache.org/content/repositories/releases/" } mavenCentral() } //all dependencies dependencies { //for Test and Compile testImplementation group: 'junit', name: 'junit', version: "${junitVersion}" compileOnly group: 'junit', name: 'junit', version: "${junitVersion}" testImplementation group: 'org.mockito', name: 'mockito-all', version: "${mockitoallVersion}" testImplementation group: 'xmlunit', name: 'xmlunit', version: "${xmlunitVersion}" //apache implementation group: 'commons-beanutils', name: 'commons-beanutils', version: "${commonsbeanutilsVersion}" implementation group: 'commons-codec', name: 'commons-codec', version: "${commonscodecVersion}" implementation group: 'commons-collections', name: 'commons-collections', version: "${commonscollectionsVersion}" implementation group: 'org.apache.commons', name: 'commons-collections4', version: "${commonscollections4Version}" //implementation group: 'org.apache.commons', name: 'commons-csv', version: "${commonscsvVersion}" implementation group: 'org.apache.commons', name: 'commons-text', version: "${commonstextVersion}" implementation group: 'org.apache.commons', name: 'commons-dbcp2', version: "${commonsdbcp2Version}" implementation group: 'commons-dbutils', name: 'commons-dbutils', version: "${commonsdbutilsVersion}" implementation group: 'org.apache.commons', name: 'commons-digester3', version: "${commonsdigester3Version}" implementation group: 'commons-digester', name: 'commons-digester', version: "${commonsdigesterVersion}" implementation group: 'commons-io', name: 'commons-io', version: "${commonsioVersion}" implementation group: 'commons-lang', name: 'commons-lang', version: "${commonslangVersion}" implementation group: 'org.apache.commons', name: 'commons-lang3', version: "${commonslang3Version}" implementation group: 'commons-logging', name: 'commons-logging', version: "${commonsloggingVersion}" implementation group: 'org.apache.commons', name: 'commons-pool2', version: "${commonspool2Version}" implementation group: 'commons-httpclient', name: 'commons-httpclient', version: "${commonshttpclientVersion}" implementation group: 'commons-fileupload', name: 'commons-fileupload', version: "${commonsfileuploadVersion}" implementation group: 'org.apache.commons', name: 'commons-email', version: "${commonsemailVersion}" implementation group: 'commons-validator', name: 'commons-validator', version: "${commonsvalidatorVersion}" implementation group: 'org.apache.httpcomponents', name: 'httpasyncclient', version: "${httpasyncclientVersion}" implementation group: 'org.apache.httpcomponents', name: 'httpclient', version: "${httpcomponentsVersion}" implementation group: 'org.apache.httpcomponents', name: 'fluent-hc', version: "${httpcomponentsVersion}" implementation group: 'org.apache.httpcomponents', name: 'httpclient-cache', version: "${httpcomponentsVersion}" implementation group: 'org.apache.httpcomponents', name: 'httpmime', version: "${httpcomponentsVersion}" implementation group: 'org.apache.httpcomponents', name: 'httpcore', version: "${httpcoreVersion}" implementation group: 'org.apache.httpcomponents', name: 'httpcore-nio', version: "${httpcoreVersion}" implementation group: 'org.apache.velocity', name: 'velocity', version: "${velocityVersion}" implementation group: 'velocity', name: 'velocity-dep', version: "${velocitydepVersion}" implementation group: 'org.freemarker', name: 'freemarker', version: "${freemarkerVersion}" implementation group: 'org.apache.xmlbeans', name: 'xmlbeans', version: "${xmlbeansVersion}" implementation group: 'org.apache.commons', name: 'commons-compress', version: "${commonscompressVersion}" implementation group: 'org.apache.poi', name: 'poi', version: "${poiVersion}" implementation group: 'org.apache.poi', name: 'poi-excelant', version: "${poiVersion}" implementation group: 'org.apache.poi', name: 'poi-ooxml', version: "${poiVersion}" implementation group: 'org.apache.poi', name: 'poi-ooxml-full', version: "${poiVersion}" implementation group: 'org.apache.poi', name: 'poi-scratchpad', version: "${poiVersion}" //implementation group: 'org.apache.commons', name: 'not-yet-commons-ssl', version: "${notyetcommonssslVersion}" //tomcat embed Core Tomcat implementation implementation group: 'org.apache.tomcat.embed', name: 'tomcat-embed-core', version: "${tomcatVersion}" implementation group: 'org.apache.tomcat.embed', name: 'tomcat-embed-el', version: "${tomcatVersion}" implementation group: 'org.apache.tomcat.embed', name: 'tomcat-embed-websocket', version: "${tomcatVersion}" //JULI logging implementation for embedded Tomcat implementation group: 'org.apache.tomcat.embed', name: 'tomcat-embed-logging-juli', version: "${tomcatembedloggingjuliVersion}" //apache logs implementation group: 'org.apache.logging.log4j', name: 'log4j-1.2-api', version: "${log4jVersion}" implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: "${log4jVersion}" implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: "${log4jVersion}" implementation group: 'org.apache.logging.log4j', name: 'log4j-jcl', version: "${log4jVersion}" implementation group: 'org.apache.logging.log4j', name: 'log4j-jul', version: "${log4jVersion}" implementation group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: "${log4jVersion}" implementation group: 'org.apache.logging.log4j', name: 'log4j-web', version: "${log4jVersion}" //logs implementation group: 'org.slf4j', name: 'slf4j-api', version: "${slf4jVersion}" implementation group: 'org.jboss.logging', name: 'jboss-logging', version: "${jbossloggingVersion}" //spring implementation group: 'org.springframework', name: 'spring-aop', version: "${springVersion}" implementation group: 'org.springframework', name: 'spring-aspects', version: "${springVersion}" implementation group: 'org.springframework', name: 'spring-beans', version: "${springVersion}" implementation group: 'org.springframework', name: 'spring-core', version: "${springVersion}" implementation group: 'org.springframework', name: 'spring-context', version: "${springVersion}" implementation group: 'org.springframework', name: 'spring-context-indexer', version: "${springVersion}" implementation group: 'org.springframework', name: 'spring-context-support', version: "${springVersion}" implementation group: 'org.springframework', name: 'spring-expression', version: "${springVersion}" //implementation group: 'org.springframework', name: 'spring-instrument', version: "${springVersion}" implementation group: 'org.springframework', name: 'spring-jcl', version: "${springVersion}" implementation group: 'org.springframework', name: 'spring-jdbc', version: "${springVersion}" //implementation group: 'org.springframework', name: 'spring-jms', version: "${springVersion}" implementation group: 'org.springframework', name: 'spring-messaging', version: "${springVersion}" //implementation group: 'org.springframework', name: 'spring-orm', version: "${springVersion}" implementation group: 'org.springframework', name: 'spring-oxm', version: "${springVersion}" implementation group: 'org.springframework', name: 'spring-tx', version: "${springVersion}" implementation group: 'org.springframework', name: 'spring-web', version: "${springVersion}" implementation group: 'org.springframework', name: 'spring-webflux', version: "${springVersion}" implementation group: 'org.springframework', name: 'spring-webmvc', version: "${springVersion}" //implementation group: 'org.springframework', name: 'spring-websocket', version: "${springVersion}" // https://mvnrepository.com/artifact/org.springframework.retry/spring-retry implementation group: 'org.springframework.retry', name: 'spring-retry', version: "${springretryVersion}" testImplementation group: 'org.springframework', name: 'spring-test', version: "${springVersion}" //spring-security implementation group: 'org.springframework.security', name: 'spring-security-core', version: "${springSecurityVersion}" implementation group: 'org.springframework.security', name: 'spring-security-web', version: "${springSecurityVersion}" implementation group: 'org.springframework.security', name: 'spring-security-crypto', version: "${springSecurityVersion}" //srpingboot implementation group: 'org.springframework.boot', name: 'spring-boot', version: "${springBootVersion}" implementation group: 'org.springframework.boot', name: 'spring-boot-starter', version: "${springBootVersion}" implementation group: 'org.springframework.boot', name: 'spring-boot-actuator', version: "${springBootVersion}" implementation group: 'org.springframework.boot', name: 'spring-boot-starter-actuator', version: "${springBootVersion}" implementation group: 'org.springframework.boot', name: 'spring-boot-actuator-autoconfigure', version: "${springBootVersion}" implementation group: 'org.springframework.boot', name: 'spring-boot-autoconfigure', version: "${springBootVersion}" implementation group: 'org.springframework.boot', name: 'spring-boot-starter-freemarker', version: "${springBootVersion}" implementation group: 'org.springframework.boot', name: 'spring-boot-starter-json', version: "${springBootVersion}" implementation group: 'org.springframework.boot', name: 'spring-boot-starter-log4j2', version: "${springBootVersion}" implementation group: 'org.springframework.boot', name: 'spring-boot-starter-logging', version: "${springBootVersion}" implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: "${springBootVersion}" implementation group: 'org.springframework.boot', name: 'spring-boot-starter-tomcat', version: "${springBootVersion}" implementation group: 'org.springframework.boot', name: 'spring-boot-starter-webflux', version: "${springBootVersion}" implementation group: 'org.springframework.boot', name: 'spring-boot-starter-reactor-netty', version: "${springBootVersion}" implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis', version: "${springBootVersion}" implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis-reactive', version: "${springBootVersion}" implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation', version: "${springBootVersion}" testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: "${springBootVersion}" //spring-boot-admin implementation group: 'de.codecentric', name: 'spring-boot-admin-client', version: "${springbootadminVersion}" implementation group: 'de.codecentric', name: 'spring-boot-admin-starter-client', version: "${springbootadminVersion}" //spring-data implementation group: 'org.springframework.data', name: 'spring-data-commons', version: "${springDataVersion}" implementation group: 'org.springframework.data', name: 'spring-data-keyvalue', version: "${springDataVersion}" implementation group: 'org.springframework.data', name: 'spring-data-redis', version: "${springDataVersion}" //spring-session implementation group: 'org.springframework.session', name: 'spring-session-core', version: "${springSessionVersion}" implementation group: 'org.springframework.session', name: 'spring-session-data-redis', version: "${springSessionVersion}" //implementation group: 'org.springframework.plugin', name: 'spring-plugin-core', version: "${springplugincoreVersion}" //implementation group: 'org.springframework.plugin', name: 'spring-plugin-metadata', version: "${springpluginmetadataVersion}" //spring cloud implementation group: 'org.springframework.cloud', name: 'spring-cloud-commons', version: "${springcloudVersion}" implementation group: 'org.springframework.cloud', name: 'spring-cloud-context', version: "${springcloudVersion}" implementation group: 'org.springframework.cloud', name: 'spring-cloud-starter', version: "${springcloudVersion}" implementation group: 'org.springframework.cloud', name: 'spring-cloud-starter-bootstrap', version: "${springcloudVersion}" //spring-cloud-alibaba implementation group: 'com.alibaba.spring', name: 'spring-context-support', version: "${springcloudalibabaspringVersion}" implementation group: 'com.alibaba.cloud', name: 'spring-cloud-alibaba-commons', version: "${springcloudalibabaVersion}" //alibaba nacos implementation group: 'com.alibaba.nacos', name: 'nacos-client', version: "${alibabanacosclientVersion}" implementation group: 'com.alibaba.cloud', name: 'spring-cloud-starter-alibaba-nacos-discovery', version: "${springcloudalibabaVersion}" implementation group: 'com.alibaba.cloud', name: 'spring-cloud-starter-alibaba-nacos-config', version: "${springcloudalibabaVersion}" //Message Queue //kafka support // https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients implementation group: 'org.apache.kafka', name: 'kafka-clients', version: "${kafkaclientsVersion}" // https://mvnrepository.com/artifact/org.springframework.kafka/spring-kafka implementation group: 'org.springframework.kafka', name: 'spring-kafka', version: "${springkafkaVersion}" //rocketmq implementation group: 'org.apache.rocketmq', name: 'rocketmq-common', version: "${rocketmqclientVersion}" implementation group: 'org.apache.rocketmq', name: 'rocketmq-remoting', version: "${rocketmqclientVersion}" implementation group: 'org.apache.rocketmq', name: 'rocketmq-logging', version: "${rocketmqclientVersion}" implementation group: 'org.apache.rocketmq', name: 'rocketmq-client', version: "${rocketmqclientVersion}" // https://mvnrepository.com/artifact/org.apache.rocketmq/rocketmq-spring-boot implementation group: 'org.apache.rocketmq', name: 'rocketmq-spring-boot', version: "${rocketmqspringbootVersion}" implementation group: 'org.apache.rocketmq', name: 'rocketmq-spring-boot-starter', version: "${rocketmqspringbootVersion}" //saml see maxkey-lib //implementation group: 'org.opensaml', name: 'opensaml', version: "${opensamlVersion}" //implementation group: 'org.opensaml', name: 'openws', version: "${openwsVersion}" //implementation group: 'org.opensaml', name: 'xmltooling', version: "${xmltoolingVersion}" implementation group: 'net.shibboleth.utilities', name: 'java-support', version: "${javasupportVersion}" //jose-jwt implementation group: 'com.nimbusds', name: 'nimbus-jose-jwt', version: "${nimbusjosejwtVersion}" implementation group: 'net.jcip', name: 'jcip-annotations', version: "${jcipannotationsVersion}" implementation group: 'net.minidev', name: 'json-smart', version: "${minidevjsonsmartVersion}" implementation group: 'net.minidev', name: 'asm', version: "${minidevasmVersion}" //oauth third party JustAuth implementation group: 'com.xkcoding.http', name: 'simple-http', version: "${simplehttpVersion}" implementation group: 'me.zhyd.oauth', name: 'JustAuth', version: "${JustAuthVersion}" //common implementation group: 'org.javassist', name: 'javassist', version: "${javassistVersion}" implementation group: 'org.owasp.esapi', name: 'esapi', version: "${esapiVersion}" implementation group: 'com.sun.mail', name: 'javax.mail', version: "${javaxmailVersion}" // https://mvnrepository.com/artifact/org.eclipse.persistence/javax.persistence // for mybatis-jpa-extra implementation group: 'org.eclipse.persistence', name: 'javax.persistence', version: "${javaxpersistenceVersion}" implementation group: 'jakarta.persistence', name: 'jakarta.persistence-api', version: '3.0.0' implementation group: 'jakarta.annotation', name: 'jakarta.annotation-api', version: "${jakartaannotationVersion}" implementation group: 'jakarta.validation', name: 'jakarta.validation-api', version: "${jakartavalidationapiVersion}" implementation group: 'javax.activation', name: 'activation', version: "${activationVersion}" implementation group: 'javax.annotation', name: 'javax.annotation-api', version: "${javaxannotationapiVersion}" implementation group: 'javax.transaction', name: 'jta', version: "${jtaVersion}" implementation group: 'javax.transaction', name: 'javax.transaction-api', version: "${javaxtransactionapiVersion}" implementation group: 'javax.validation', name: 'validation-api', version: "${validationapiVersion}" implementation group: 'javax.xml', name: 'jsr173', version: "${jsr173Version}" implementation group: 'javax.xml.bind', name: 'jaxb-api', version: "${jaxbapiVersion}" implementation group: 'com.sun.xml.bind', name: 'jaxb-core', version: "${jaxbcoreVersion}" implementation group: 'com.sun.xml.bind', name: 'jaxb-impl', version: "${jaxbimplVersion}" implementation group: 'com.sun.xml.bind', name: 'jaxb-xjc', version: "${jaxbxjcVersion}" //crypto implementation group: 'org.bouncycastle', name: 'bcpkix-jdk15on', version: "${bouncycastleVersion}" implementation group: 'org.bouncycastle', name: 'bcprov-jdk15on', version: "${bouncycastleVersion}" implementation group: 'org.bouncycastle', name: 'bcprov-ext-jdk15on', version: "${bouncycastleVersion}" //google implementation group: 'com.google.crypto.tink', name: 'tink', version: "${tinkVersion}" //kaptcha implementation group: 'com.jhlabs', name: 'filters', version: "${jhlabsfiltersVersion}" implementation group: 'com.github.penggle', name: 'kaptcha', version: "${kaptchaVersion}" //json implementation group: 'com.google.code.gson', name: 'gson', version: "${gsonVersion}" //reactive implementation group: 'org.reactivestreams', name: 'reactive-streams', version: "${reactivestreamsVersion}" implementation group: 'io.projectreactor', name: 'reactor-core', version: "${reactorcoreVersion}" implementation group: 'eu.tekul', name: 'szxcvbn_2.9.2', version: "${szxcvbnVersion}" //quartz implementation group: 'org.quartz-scheduler', name: 'quartz', version: "${quartzVersion}" //database implementation group: 'mysql', name: 'mysql-connector-java', version: "${mysqlconnectorjavaVersion}" implementation group: 'org.postgresql', name: 'postgresql', version: "${postgresqlVersion}" implementation group: 'com.alibaba', name: 'druid', version: "${druidVersion}" implementation group: 'com.alibaba', name: 'druid-spring-boot-starter', version: "${druidspringbootstarterVersion}" implementation group: 'redis.clients', name: 'jedis', version: "${jedisVersion}" //implementation group: 'org.liquibase', name: 'liquibase-core', version: '4.3.5' implementation group: 'com.github.ben-manes.caffeine', name: 'caffeine', version: "${caffeineVersion}" //mybatis implementation group: 'org.mybatis', name: 'mybatis', version: "${mybatisVersion}" implementation group: 'org.mybatis', name: 'mybatis-spring', version: "${mybatisspringVersion}" //hibernate implementation group: 'org.hibernate.validator', name: 'hibernate-validator', version: "${hibernateVersion}" implementation group: 'org.hibernate', name: 'hibernate-validator-cdi', version: "${hibernateVersion}" implementation group: 'org.hibernate.validator', name: 'hibernate-validator-annotation-processor', version: "${hibernateVersion}" //usefull implementation group: 'joda-time', name: 'joda-time', version: "${jodatimeVersion}" implementation group: 'org.yaml', name: 'snakeyaml', version: "${snakeyamlVersion}" implementation group: 'net.sourceforge.nekohtml', name: 'nekohtml', version: "${nekohtmlVersion}" implementation group: 'org.jdom', name: 'jdom', version: "${jdomVersion}" implementation group: 'com.google.zxing', name: 'core', version: "${zxingcoreVersion}" implementation group: 'com.google.guava', name: 'guava', version: "${guavaVersion}" implementation group: 'ognl', name: 'ognl', version: "${ognlVersion}" implementation group: 'cglib', name: 'cglib', version: "${cglibVersion}" implementation group: 'org.ow2.asm', name: 'asm', version: "${asmVersion}" implementation group: 'aopalliance', name: 'aopalliance', version: "${aopallianceVersion}" implementation group: 'org.aspectj', name: 'aspectjtools', version: "${aspectjtoolsVersion}" implementation group: 'dom4j', name: 'dom4j', version: "${dom4jVersion}" implementation group: 'xalan', name: 'serializer', version: "${serializerVersion}" implementation group: 'xml-resolver', name: 'xml-resolver', version: "${xmlresolverVersion}" implementation group: 'org.apache.santuario', name: 'xmlsec', version: "${xmlsecVersion}" implementation group: 'org.ogce', name: 'xpp3', version: "${xpp3Version}" implementation group: 'com.thoughtworks.xstream', name: 'xstream', version: "${xstreamVersion}" implementation group: 'org.passay', name: 'passay', version: "${passayVersion}" implementation group: 'io.micrometer', name: 'micrometer-core', version: "${micrometercoreVersion}" implementation group: 'org.latencyutils', name: 'LatencyUtils', version: "${LatencyUtilsVersion}" implementation group: 'org.codehaus.woodstox', name: 'stax2-api', version: "${stax2apiVersion}" implementation group: 'org.reflections', name: 'reflections', version: "${reflectionsVersion}" implementation group: 'io.prometheus', name: 'simpleclient', version: "${prometheusVersion}" implementation group: 'io.prometheus', name: 'simpleclient_common', version: "${prometheusVersion}" implementation group: 'com.belerweb', name: 'pinyin4j', version: "${pinyin4jVersion}" implementation group: 'org.jsoup', name: 'jsoup', version: "${jsoupVersion}" implementation group: 'io.netty', name: 'netty-all', version: "${nettyVersion}" //阿里云 implementation group: 'com.aliyun', name: 'aliyun-java-sdk-core', version: "${aliyunjavasdkcoreVersion}" //腾讯云 implementation group: 'com.tencentcloudapi', name: 'tencentcloud-sdk-java', version: "${tencentcloudsdkjavaVersion}" //json implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jacksonVersion}" implementation group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: "${jacksonVersion}" implementation group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: "${jacksonVersion}" implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jdk8', version: "${jacksonVersion}" implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: "${jacksonVersion}" implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: "${jacksonVersion}" implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: "${jacksonVersion}" implementation group: 'com.fasterxml.jackson.module', name: 'jackson-module-parameter-names', version: "${jacksonVersion}" implementation group: 'com.fasterxml.jackson.module', name: 'jackson-module-jaxb-annotations', version: "${jacksonVersion}" implementation group: 'com.fasterxml.jackson.module', name: 'jackson-module-jakarta-xmlbind-annotations', version: "${jacksonVersion}" implementation group: 'com.fasterxml', name: 'classmate', version: "${classmateVersion}" implementation group: 'com.fasterxml.woodstox', name: 'woodstox-core', version: "${woodstoxVersion}" implementation group: 'com.alibaba', name: 'fastjson', version: "${fastjsonVersion}" //docs implementation group: 'org.mapstruct', name: 'mapstruct', version: "${mapstructVersion}" //implementation group: 'io.swagger', name: 'swagger-annotations', version: "${swaggerVersion}" //implementation group: 'io.swagger', name: 'swagger-models', version: "${swaggerVersion}" implementation group: 'io.swagger.core.v3', name: 'swagger-annotations', version: "${swaggerV3Version}" implementation group: 'io.swagger.core.v3', name: 'swagger-core', version: "${swaggerV3Version}" implementation group: 'io.swagger.core.v3', name: 'swagger-integration', version: "${swaggerV3Version}" implementation group: 'io.swagger.core.v3', name: 'swagger-models', version: "${swaggerV3Version}" //springdoc implementation group: 'io.github.classgraph', name: 'classgraph', version: '4.8.137' implementation group: 'org.springdoc', name: 'springdoc-openapi-common', version: "${springdocVersion}" implementation group: 'org.springdoc', name: 'springdoc-openapi-webmvc-core', version: "${springdocVersion}" implementation group: 'org.springdoc', name: 'springdoc-openapi-ui', version: "${springdocVersion}" implementation group: 'org.webjars', name: 'webjars-locator-core', version: '0.48' implementation group: 'org.webjars', name: 'webjars-locator', version: '0.42' implementation group: 'org.webjars', name: 'swagger-ui', version: '4.1.3' //knife4j implementation group: 'com.github.xiaoymin', name: 'knife4j-springdoc-ui', version: "${knife4jVersion}" //local jars implementation fileTree(dir: "${rootDir}/maxkey-lib/", include: '*.jar') } jar { def currentTime = java.time.ZonedDateTime.now() manifest { attributes( "Implementation-Title": project.name, "Implementation-Vendor": project.vendor, "Created-By": project.author, "Implementation-Date": currentTime, "Implementation-Version": project.version ) } } tasks.register("buildRelease",Copy) { dependsOn assemble //项目名 项目所在的group version 版本号 println "subproject " + project.name + ", group " + project.group +" , version " + project.version //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") { dependsOn 'copyShellScript','copyWindowsShellScript' //项目名 项目所在的group version 版本号 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 }