|
|
@ -55,11 +55,14 @@ subprojects { |
|
|
|
// exclude group: "org.slf4j", module: "slf4j-jdk14" |
|
|
|
exclude group: "org.slf4j", module: "slf4j-nop" |
|
|
|
|
|
|
|
resolutionStrategy.eachDependency { DependencyResolveDetails detail -> |
|
|
|
def requested =detail.requested; |
|
|
|
def groupAndName =requested.group + ":" + requested.name; |
|
|
|
if(PlatformDependencyVersions[groupAndName]!=null){ |
|
|
|
detail.useVersion(PlatformDependencyVersions[groupAndName]); |
|
|
|
if(PlatformDependencyVersions!=null && PlatformDependencyVersions.size()>0) { |
|
|
|
resolutionStrategy.eachDependency { DependencyResolveDetails detail -> |
|
|
|
def requested = detail.requested; |
|
|
|
def groupAndName = requested.group + ":" + requested.name; |
|
|
|
String version = PlatformDependencyVersions[groupAndName]; |
|
|
|
if (version != null) { |
|
|
|
detail.useVersion(version); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -86,7 +89,7 @@ subprojects { |
|
|
|
if(repo instanceof MavenArtifactRepository){ |
|
|
|
def url = repo.url.toString() |
|
|
|
if ( |
|
|
|
url.startsWith('https://repo1.maven.org/maven2') |
|
|
|
url.startsWith('https://repo1.maven.org/maven2') |
|
|
|
|| url.startsWith('https://jcenter.bintray.com/') |
|
|
|
|| url.startsWith('https://maven.aliyun.com') |
|
|
|
) { |
|
|
@ -117,7 +120,7 @@ subprojects { |
|
|
|
*----------------------------------------------------------------*/ |
|
|
|
group ="${platform_group}" |
|
|
|
version ="${platform_version}" |
|
|
|
|
|
|
|
|
|
|
|
if(file('package.json').exists()){ |
|
|
|
mkdir 'java-src/main/java'; |
|
|
|
mkdir 'java-src/main/resources'; |
|
|
@ -694,6 +697,24 @@ subprojects { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 对每个前端项目在 idea 中排除 node_modules 目录, 避免大量耗时的 idea 索引 |
|
|
|
idea { |
|
|
|
module { |
|
|
|
excludeDirs += file('node_modules') |
|
|
|
excludeDirs += file('dist') |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
clean { |
|
|
|
doFirst{ |
|
|
|
if(isFrontendProject(file('.'))) { |
|
|
|
delete 'dist' |
|
|
|
delete 'node_modules' |
|
|
|
delete 'pnpm-lock.yaml' |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/*********************************************************************** |
|
|
@ -703,7 +724,7 @@ subprojects { |
|
|
|
* idea 配置 |
|
|
|
*----------------------------------------------------------------*/ |
|
|
|
tasks.ideaProject.enabled=true //在根工程中执行 ideaProject 任务,用于生成 ipr 文件 |
|
|
|
tasks.ideaModule.enabled=false //在根工程中不执行 ideaModule 任务 |
|
|
|
tasks.ideaModule.enabled=false //在根工程中不执行 ideaModule 任务 |
|
|
|
tasks.ideaWorkspace.enabled=true //在根工程中执行 ideaWorkspace 任务,用于修改 iws 文件 |
|
|
|
|
|
|
|
tasks.ideaProject.doFirst { |
|
|
@ -734,7 +755,7 @@ idea { |
|
|
|
} |
|
|
|
} |
|
|
|
project { |
|
|
|
vcs = 'Git' |
|
|
|
vcs = 'Git' |
|
|
|
ipr { |
|
|
|
// 自动化配置生成的 ipr 文件内容,减少手工操作 |
|
|
|
// 1. 移除根项目模块 |
|
|
@ -759,22 +780,22 @@ idea { |
|
|
|
withXml { |
|
|
|
// 1. 移除根项目模块 |
|
|
|
def node = it.asNode() |
|
|
|
def projectModuleManagerNode =node.find{it.@name=='ProjectModuleManager'} |
|
|
|
def rootImlNode =projectModuleManagerNode.modules.module.find{it.@fileurl=='file://$PROJECT_DIR$/' + project.name + '.iml'} |
|
|
|
def rootImlParentNode =rootImlNode.parent() |
|
|
|
def projectModuleManagerNode = node.find { it.@name == 'ProjectModuleManager' } |
|
|
|
def rootImlNode = projectModuleManagerNode.modules.module.find { it.@fileurl == 'file://$PROJECT_DIR$/' + project.name + '.iml' } |
|
|
|
def rootImlParentNode = rootImlNode.parent() |
|
|
|
rootImlParentNode.remove(rootImlNode) |
|
|
|
|
|
|
|
// 2. 替换 Encoding |
|
|
|
def encodingNode =node.find{it.@name=='Encoding'} |
|
|
|
encodingNode.@native2AsciiForPropertiesFiles="true" |
|
|
|
def encodingNode = node.find { it.@name == 'Encoding' } |
|
|
|
encodingNode.@native2AsciiForPropertiesFiles = "true" |
|
|
|
|
|
|
|
// 3. 使 idea 编译器支持注解(enable annotation processing) |
|
|
|
def compilerConfigurationNode =node.find{it.@name=='CompilerConfiguration'} |
|
|
|
def annotationProcessingNode =compilerConfigurationNode.annotationProcessing[0] |
|
|
|
def annotationProcessingParentNode =annotationProcessingNode.parent() |
|
|
|
def compilerConfigurationNode = node.find { it.@name == 'CompilerConfiguration' } |
|
|
|
def annotationProcessingNode = compilerConfigurationNode.annotationProcessing[0] |
|
|
|
def annotationProcessingParentNode = annotationProcessingNode.parent() |
|
|
|
annotationProcessingParentNode.remove(annotationProcessingNode) |
|
|
|
annotationProcessingNode =annotationProcessingParentNode.appendNode("annotationProcessing") |
|
|
|
annotationProcessingNode.appendNode("profile",[default:true,enabled:true]) |
|
|
|
annotationProcessingNode = annotationProcessingParentNode.appendNode("annotationProcessing") |
|
|
|
annotationProcessingNode.appendNode("profile", [default: true, enabled: true]) |
|
|
|
|
|
|
|
// 4. 激活 SaveActions 插件, 修改文件后自动编译并发布, 在 .ipr 文件中生成以下 xml 片段 |
|
|
|
// <component name="SaveActionSettings"> |
|
|
@ -788,39 +809,39 @@ idea { |
|
|
|
// </component> |
|
|
|
|
|
|
|
// <component name="SaveActionSettings"> |
|
|
|
def saveActionSettingsNode =node.find{it.@name=='SaveActionSettings'} |
|
|
|
if(saveActionSettingsNode==null){ |
|
|
|
saveActionSettingsNode =node.appendNode("component",[name:"SaveActionSettings"]) |
|
|
|
def saveActionSettingsNode = node.find { it.@name == 'SaveActionSettings' } |
|
|
|
if (saveActionSettingsNode == null) { |
|
|
|
saveActionSettingsNode = node.appendNode("component", [name: "SaveActionSettings"]) |
|
|
|
} |
|
|
|
|
|
|
|
// <option name="actions"> |
|
|
|
def actionsNode =saveActionSettingsNode.find{it.@name=='actions'} |
|
|
|
if(actionsNode==null){ |
|
|
|
actionsNode =saveActionSettingsNode.appendNode("option",[name:"actions"]) |
|
|
|
def actionsNode = saveActionSettingsNode.find { it.@name == 'actions' } |
|
|
|
if (actionsNode == null) { |
|
|
|
actionsNode = saveActionSettingsNode.appendNode("option", [name: "actions"]) |
|
|
|
} |
|
|
|
|
|
|
|
// <set> |
|
|
|
def setNode =actionsNode.set[0] |
|
|
|
def setNode = actionsNode.set[0] |
|
|
|
|
|
|
|
if(setNode==null){ |
|
|
|
setNode =actionsNode.appendNode("set") |
|
|
|
if (setNode == null) { |
|
|
|
setNode = actionsNode.appendNode("set") |
|
|
|
} |
|
|
|
|
|
|
|
// <option value="activate" /> |
|
|
|
// <option value="reload" /> |
|
|
|
def options =setNode.option |
|
|
|
if(options!=null && options.size()>0){ |
|
|
|
def options = setNode.option |
|
|
|
if (options != null && options.size() > 0) { |
|
|
|
// 先移除 |
|
|
|
for(int i=0;i<options.size();i++){ |
|
|
|
for (int i = 0; i < options.size(); i++) { |
|
|
|
setNode.remove(options.get(i)); |
|
|
|
} |
|
|
|
} |
|
|
|
// 再添加 |
|
|
|
setNode.appendNode("option",[value:"activate"]) |
|
|
|
setNode.appendNode("option",[value:"reload"]) |
|
|
|
setNode.appendNode("option", [value: "activate"]) |
|
|
|
setNode.appendNode("option", [value: "reload"]) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/*----------------------------------------------------------------- |
|
|
|