diff --git a/app.irbs/build-common.gradle b/app.irbs/build-common.gradle
index fc90acb..dc7beac 100644
--- a/app.irbs/build-common.gradle
+++ b/app.irbs/build-common.gradle
@@ -13,7 +13,7 @@ System.setProperty('target',target);
apply from: "build-${target}.gradle"
// 应用启动项目无需发布到仓库中
-publishPublicationPublicationToMavenRepository.enabled=false
+//publishPublicationPublicationToMavenRepository.enabled=false
// 开启 docker 镜像生成任务
-jibBuildTar.enabled =true
+//jibBuildTar.enabled =true
diff --git a/app.irbs/build.gradle b/app.irbs/build.gradle
index 2e5c7f2..9d5d122 100644
--- a/app.irbs/build.gradle
+++ b/app.irbs/build.gradle
@@ -4,13 +4,13 @@ apply plugin: 'com.google.cloud.tools.jib'
apply from: "build-common.gradle"
dependencies {
- implementation("org.springframework.boot:spring-boot-starter-web"){
- exclude group: "org.springframework.boot", module: "spring-boot-starter-tomcat"
- }
+ implementation("org.springframework.boot:spring-boot-starter-web"){
+ exclude group: "org.springframework.boot", module: "spring-boot-starter-tomcat"
+ }
}
dependencies {
- implementation (
+ implementation (
"io.sc:io.sc.platform.developer:${platform_version}",
"io.sc:io.sc.platform.app:${platform_version}",
"io.sc:io.sc.platform.security.loginform:${platform_version}",
@@ -73,7 +73,7 @@ bootWar{
//launchScript()
manifest {
attributes 'Implementation-Version': archiveVersion,
- 'Implementation-Title': project.name
+ 'Implementation-Title': project.name
}
}
@@ -82,11 +82,10 @@ bootJar{
//launchScript()
manifest {
attributes 'Implementation-Version': archiveVersion,
- 'Implementation-Title': project.name
+ 'Implementation-Title': project.name
}
}
-
jib {
outputPaths {
tar = "build/libs/${project.name}-${project.version}-image.tar"
diff --git a/build.gradle b/build.gradle
index 8fce106..6d80c48 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,3 +1,5 @@
+import org.gradle.api.artifacts.DependencyResolveDetails
+
apply from: "build-version.gradle"
def isFrontendProject(currentDir){
@@ -42,71 +44,79 @@ subprojects {
apply plugin: 'io.spring.dependency-management'
apply plugin: "org.asciidoctor.jvm.convert"
- configurations.all {
- //设置 gradle 拉取依赖包的缓存策略为不进行缓存,可保证每次拉取最新的依赖包
- //resolutionStrategy.cacheDynamicVersionsFor 0, 'seconds' //动态版本: 1.1.+
- //resolutionStrategy.cacheChangingModulesFor 0, 'seconds' //静态版本: 1.1.2
+ configurations.all {
+ //设置 gradle 拉取依赖包的缓存策略为不进行缓存,可保证每次拉取最新的依赖包
+ //resolutionStrategy.cacheDynamicVersionsFor 0, 'seconds' //动态版本: 1.1.+
+ //resolutionStrategy.cacheChangingModulesFor 0, 'seconds' //静态版本: 1.1.2
//排除不需要的外部依赖
- //exclude group: "org.apache.logging.log4j", module: "log4j-api"
- //exclude group: "org.apache.logging.log4j", module: "log4j-to-slf4j"
- //exclude group: "org.slf4j", module: "slf4j-jdk14"
+// exclude group: "org.apache.logging.log4j", module: "log4j-api"
+// exclude group: "org.apache.logging.log4j", module: "log4j-to-slf4j"
+// exclude group: "org.slf4j", module: "slf4j-jdk14"
exclude group: "org.slf4j", module: "slf4j-nop"
- }
- dependencyManagement {
- resolutionStrategy {
- //设置 gradle 拉取依赖包的缓存策略为不进行缓存,可保证每次拉取最新的依赖包
- //cacheDynamicVersionsFor 0, 'seconds' //动态版本: 1.1.+
+ resolutionStrategy.eachDependency { DependencyResolveDetails detail ->
+ def requested =detail.requested;
+ def groupAndName =requested.group + ":" + requested.name;
+ if(PlatformDependencyVersions[groupAndName]!=null){
+ detail.useVersion(PlatformDependencyVersions[groupAndName]);
+ }
+ }
+ }
+
+ dependencyManagement {
+ resolutionStrategy {
+ //设置 gradle 拉取依赖包的缓存策略为不进行缓存,可保证每次拉取最新的依赖包
+ //cacheDynamicVersionsFor 0, 'seconds' //动态版本: 1.1.+
//cacheChangingModulesFor 0, 'seconds' //静态版本: 1.1.2
}
- imports {
- //mavenBom "org.springframework.cloud:spring-cloud-dependencies:${spring_cloud_version}"
+ imports {
+ //mavenBom "org.springframework.cloud:spring-cloud-dependencies:${spring_cloud_version}"
mavenBom "com.alibaba.cloud:spring-cloud-alibaba-dependencies:${spring_cloud_alibaba_version}"
mavenBom "org.springframework.statemachine:spring-statemachine-bom:${spring_statemachine_version}"
- }
- }
+ }
+ }
- /*-----------------------------------------------------------------
+ /*-----------------------------------------------------------------
* 配置构建时所需依赖的仓库 url
* 将仓库 url 都定位到 ${repository_url} 指定的本地私有仓库地址
*----------------------------------------------------------------*/
- repositories {
- all { ArtifactRepository repo ->
+ repositories {
+ all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (
- url.startsWith('https://repo1.maven.org/maven2')
- || url.startsWith('https://jcenter.bintray.com/')
- || url.startsWith('https://maven.aliyun.com')
+ url.startsWith('https://repo1.maven.org/maven2')
+ || url.startsWith('https://jcenter.bintray.com/')
+ || url.startsWith('https://maven.aliyun.com')
) {
remove repo
}
}
}
- maven {
- allowInsecureProtocol = true
- url "${repository_url}"
- }
- }
+ maven {
+ allowInsecureProtocol = true
+ url "${repository_url}"
+ }
+ }
- /*-----------------------------------------------------------------
+ /*-----------------------------------------------------------------
* java 编译时选项
*----------------------------------------------------------------*/
sourceCompatibility ="${java_version}"
- targetCompatibility ="${java_version}"
- compileJava.options.encoding ="${java_encoding}"
- compileTestJava.options.encoding ="${java_encoding}"
+ targetCompatibility ="${java_version}"
+ compileJava.options.encoding ="${java_encoding}"
+ compileTestJava.options.encoding ="${java_encoding}"
- tasks.withType(JavaCompile) {
- options.compilerArgs += ["-Xlint:deprecation","-Xlint:unchecked"]
- }
+ tasks.withType(JavaCompile) {
+ options.compilerArgs += ["-Xlint:deprecation","-Xlint:unchecked"]
+ }
- /*-----------------------------------------------------------------
+ /*-----------------------------------------------------------------
* 配置项目基本信息
*----------------------------------------------------------------*/
- group ="${application_group}"
- version ="${application_version}"
+ group ="${application_group}"
+ version ="${application_version}"
if(file('package.json').exists()){
mkdir 'java-src/main/java';
@@ -114,7 +124,7 @@ subprojects {
mkdir 'dist';
sourceSets.main.java.srcDir 'java-src/main/java'
sourceSets.main.resources.srcDir 'java-src/main/resources'
- sourceSets.main.resources.srcDir 'dist'
+ sourceSets.main.resources.srcDir 'dist'
}
/*-----------------------------------------------------------------
@@ -140,48 +150,48 @@ subprojects {
}
clean {
- delete 'dist' //删除前端自动生成的资源目录
+ delete 'dist' //删除前端自动生成的资源目录
delete 'bin' //删除 eclipse 编译的 bin 目录
delete 'build' //删除 gradle 构建目录
}
- /*-----------------------------------------------------------------
+ /*-----------------------------------------------------------------
* 配置 eclipse 插件
*----------------------------------------------------------------*/
eclipse{
- jdt{
- sourceCompatibility ="${java_version}"
- targetCompatibility ="${java_version}"
- }
- }
+ jdt{
+ sourceCompatibility ="${java_version}"
+ targetCompatibility ="${java_version}"
+ }
+ }
- /*-----------------------------------------------------------------
+ /*-----------------------------------------------------------------
* springboot 插件配置
*----------------------------------------------------------------*/
jar {
- //可以生成普通的 jar
- enabled = true
- archiveClassifier.set("")
- manifest {
+ //可以生成普通的 jar
+ enabled = true
+ archiveClassifier.set("")
+ manifest {
attributes 'Manifest-Version' : '1.0',
- 'Implementation-Title' : name,
- 'Implementation-Vendor' : group,
- 'Implementation-Version': archiveVersion
+ 'Implementation-Title' : name,
+ 'Implementation-Vendor' : group,
+ 'Implementation-Version': archiveVersion
}
}
- /*-----------------------------------------------------------------
+ /*-----------------------------------------------------------------
* asciidoctor 插件配置,用于生成 asciidoc 文档,用于打包到 jar 中
*----------------------------------------------------------------*/
- asciidoctor {
- baseDirFollowsSourceDir()
- outputs.upToDateWhen { true }
-
- logDocuments = true
- sourceDir = file('asciidoc')
- sources {
- include '*.adoc'
- }
+ asciidoctor {
+ baseDirFollowsSourceDir()
+ outputs.upToDateWhen { true }
+
+ logDocuments = true
+ sourceDir = file('asciidoc')
+ sources {
+ include '*.adoc'
+ }
outputDir = file("dist/help/" + project.name)
resources {
from(sourceDir) {
@@ -191,24 +201,24 @@ subprojects {
}
asciidoctorj {
- modules {
- diagram.use()
- }
- }
+ modules {
+ diagram.use()
+ }
+ }
/*-----------------------------------------------------------------
* 自定义任务,用于生成 asciidoc 文档到 web 服务器,以便实时查看效果
*----------------------------------------------------------------*/
task doc(type: org.asciidoctor.gradle.jvm.AsciidoctorTask){
- baseDirFollowsSourceDir()
- outputs.upToDateWhen { true }
+ baseDirFollowsSourceDir()
+ outputs.upToDateWhen { true }
- logDocuments = true
- sourceDir = file('asciidoc')
- sources {
- include '*.adoc'
- }
- outputDir = file("$asciidoc_deploy_dir" + project.name)
+ logDocuments = true
+ sourceDir = file('asciidoc')
+ sources {
+ include '*.adoc'
+ }
+ outputDir = file("$asciidoc_deploy_dir" + project.name)
// 拷贝 asciidoc 自定义资源
// 设置方式: 通过命令行 -D 传入目标环境参数
@@ -222,48 +232,48 @@ subprojects {
}
}
}
- }
+ }
/*-----------------------------------------------------------------
* 资源处理前执行 asciidoctor
*----------------------------------------------------------------*/
processResources {
- dependsOn asciidoctor
- doLast{
- //打包时移除 jrebel 相关的文件
- delete "$buildDir/resources/main/rebel.xml"
- }
- }
+ dependsOn asciidoctor
+ doLast{
+ //打包时移除 jrebel 相关的文件
+ delete "$buildDir/resources/main/rebel.xml"
+ }
+ }
/*-----------------------------------------------------------------
* 用于自动生成 jrebel.xml 文件的自定义任务(eclipse)
*----------------------------------------------------------------*/
- task jrebelEclipse() {}
- tasks.jrebelEclipse.doLast {
- File resourcesFile =file('src/main/resources')
- if(resourcesFile!=null && resourcesFile.exists()){
- File rebelFile = file('src/main/resources/rebel.xml')
- rebelFile.withWriter('UTF-8') { writer ->
- writer.write('\n');
- writer.write('\n');
- writer.write('\t\n');
- if(file(project.name + '/src/main').exists()){
- writer.write('\t\t\n');
- }
- if(file(project.name + '/src/generated').exists()){
- writer.write('\t\t\n');
- }
- writer.write('\t\n');
- writer.write('');
- }
- }
- }
+ task jrebelEclipse() {}
+ tasks.jrebelEclipse.doLast {
+ File resourcesFile =file('src/main/resources')
+ if(resourcesFile!=null && resourcesFile.exists()){
+ File rebelFile = file('src/main/resources/rebel.xml')
+ rebelFile.withWriter('UTF-8') { writer ->
+ writer.write('\n');
+ writer.write('\n');
+ writer.write('\t\n');
+ if(file(project.name + '/src/main').exists()){
+ writer.write('\t\t\n');
+ }
+ if(file(project.name + '/src/generated').exists()){
+ writer.write('\t\t\n');
+ }
+ writer.write('\t\n');
+ writer.write('');
+ }
+ }
+ }
/*-----------------------------------------------------------------
* 用于自动生成 jrebel.xml 文件的自定义任务(idea)
*----------------------------------------------------------------*/
- task jrebelIdea() {}
- tasks.jrebelIdea.doLast {
+ task jrebelIdea() {}
+ tasks.jrebelIdea.doLast {
if(isFrontendProject(file('.'))) {
File resourcesFile = file('java-src/main/resources')
if (resourcesFile != null && resourcesFile.exists()) {
@@ -295,7 +305,7 @@ subprojects {
}
}
}
- }
+ }
/*-----------------------------------------------------------------
* maven publish 插件配置
@@ -303,12 +313,12 @@ subprojects {
publishing {
repositories {
maven {
- allowInsecureProtocol = true //允许采用 http 协议发布
+ allowInsecureProtocol = true //允许采用 http 协议发布
url = version.contains('SNAPSHOT') ? "${repository_snapshot_url}" : "${repository_release_url}"
credentials {
username = (version.contains('SNAPSHOT') ? "${repository_snapshot_username}" : "${repository_release_username}")
password = (version.contains('SNAPSHOT') ? "${repository_snapshot_password}" : "${repository_release_password}")
- }
+ }
}
}
publications{
@@ -317,18 +327,18 @@ subprojects {
//artifact sourcesJar
//artifact javadocJar
versionMapping {
- usage('java-api') {
- fromResolutionOf('runtimeClasspath')
- }
- usage('java-runtime') {
- fromResolutionResult()
- }
- }
+ usage('java-api') {
+ fromResolutionOf('runtimeClasspath')
+ }
+ usage('java-runtime') {
+ fromResolutionResult()
+ }
+ }
}
}
}
- /*-----------------------------------------------------------------
+ /*-----------------------------------------------------------------
* 更新前端模块的 package.json 文件,同步其中的 name 和 version
*----------------------------------------------------------------*/
task frontendUpdatePackageJson(){}
@@ -354,7 +364,7 @@ subprojects {
}
}
- /*-----------------------------------------------------------------
+ /*-----------------------------------------------------------------
* pnpm install
*----------------------------------------------------------------*/
task frontendNpmInstall(type:Exec){
@@ -404,7 +414,7 @@ subprojects {
}
}
- /*-----------------------------------------------------------------
+ /*-----------------------------------------------------------------
* pnpm run build
*----------------------------------------------------------------*/
task frontendNpmBuild(type:Exec) {
@@ -429,7 +439,7 @@ subprojects {
}
}
- /*-----------------------------------------------------------------
+ /*-----------------------------------------------------------------
* pnpm run prod
*----------------------------------------------------------------*/
task frontendNpmProd(type:Exec) {
@@ -672,7 +682,16 @@ subprojects {
processResources {
if(isFrontendProject(file('.'))) {
- exclude("**/${project.name}/*.*")
+ exclude("**/${project.name}/*.*");
+ if(project.name!='io.sc.platform.mvc.frontend' && project.name!='io.sc.platform.security.frontend'){
+// exclude("**/${project.name}/javascript/codemirror.*");
+// exclude("**/${project.name}/javascript/echarts.*");
+// exclude("**/${project.name}/javascript/platform-core.*");
+// exclude("**/${project.name}/javascript/quasar.*");
+// exclude("**/${project.name}/javascript/vue.*");
+// exclude("**/${project.name}/fonts/*.*");
+// exclude("**/${project.name}/webjars/**/*.*");
+ }
}
}
}
@@ -714,8 +733,8 @@ idea {
}
}
}
- project {
- vcs = 'Git'
+ project {
+ vcs = 'Git'
ipr {
// 自动化配置生成的 ipr 文件内容,减少手工操作
// 1. 移除根项目模块
@@ -801,7 +820,7 @@ idea {
setNode.appendNode("option",[value:"reload"])
}
}
- }
+ }
}
/*-----------------------------------------------------------------
diff --git a/gradle.properties b/gradle.properties
index f08d788..57c0e3f 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -10,13 +10,13 @@ systemProp.org.gradle.internal.publish.checksums.insecure=true
###########################################################
# Maven private repository configuration
###########################################################
-repository_url=http://58.33.84.154:8000/repository/maven-public/
+repository_url=http://nexus.sc.io:8000/repository/maven-public/
-repository_release_url=http://58.33.84.154:8000/repository/maven-releases/
+repository_release_url=http://nexus.sc.io:8000/repository/maven-releases/
repository_release_username=admin
repository_release_password=admin
-repository_snapshot_url=http://58.33.84.154:8000/repository/maven-snapshots/
+repository_snapshot_url=http://nexus.sc.io:8000/repository/maven-snapshots/
repository_snapshot_username=admin
repository_snapshot_password=admin