
# 一、前言
- 本文档的目的是,帮助星空旗舰版的项目二开人员,快速搭建星空旗舰版的开发环境,按规范要求进行星空.旗舰版的应用开发。
- 在读本文前,开发人员请先安装好IDEA,配置好JDK(V1.8版本);
- 苍穹开发助手支持 IntelliJ IDEA 2021.3+版本。
- 旗舰版开发环境使用Gradle构建项目,Gradle建议使用5.0的版本,其他版本可能会不兼容。
- 多人协作开发时,可采用旗舰版轻量环境作为开发服务器(安装器版本也可)。
# 二、准备工作
在进行星空旗舰版二次开发环境配置前,请先安装好以下工具:
1、完成安装 [JAVA JDK(V1.8)](https://www.cnblogs.com/cnwutianhao/p/5487758.html)
2、完成安装 [IDEA 2021.3+版本](https://zhuanlan.zhihu.com/p/614994782)
3、完成安装 [IDEA插件(苍穹开发助手)](https://wenku.my7c.com/knowledge/specialDetail/218022218066869248?category=421738217193245952)
4、Git安装及IDEA配置:
5、[GradleV5.0安装及配置](https://zhuanlan.zhihu.com/p/626806226)
6、在协同开发平台创建项目:
# 三、创建IDEA代码调试工程
借助“苍穹开发者工具”,可以快速创建IDEA的工程项目,如下截图


调试代码工程创建完成后,会创建两个文件夹,已经是创建时填写的“项目名称”文件夹,一个是“项目名称-server”文件夹,
**例如我DEMO演示创建的目录如下:**
- debugKrhd:调试工程代码目录;
- debugKrhd-server:调试工程依赖的jar包、静态资源目录
# 四、调试工程修改Gradle配置
**1、删除工程项目中的iml文件**

**2、解压Gradle配置文件到工程项目目录(build.gradle,settings.gradle,在文章最后下载附件解压)**

**3、修改配置文件 build.gradle,参考截图修改,修改完成后,重启下IDEA,使配置生效**

**4、Resources配置修改**
- 在项目目录下,创建resources文件夹,并标记为Resources Root
- 将log.config.xml文件移到resources目录

- Launcher.java文件加载日志的代码修改为:
``` java
try {
String logConfig = new String(Files.readAllBytes(Paths.get(getClass().getClassLoader().getResource("log.config.xml").toURI())), "UTF-8");
set("log.config", logConfig);
} catch (Exception e) {
e.printStackTrace();
}
```

# 五、导入协同开发平台项目代码
**1、项目代码从协同开发平台项目中的开发应用中获取**

**2、在IDEA中从Gitlab克隆代码到本地目录(建议跟调试工程放在同一层级目录),无需在IDEA中打开克隆的项目**

**3、修改调试工程配置文件settings.gradle,引入项目代码到调试工程:**

``` java
include "devdemo"
project(":devdemo").projectDir = file("../devdemo/code")
file("../devdemo/code").eachDir { dir ->
if (dir.name.contains("-devdemo-")){
include "devdemo:"+dir.name
}
}
```
**4、项目代码配置文件修改(***\code\config.gradle)**
***\code\config.gradle配置文件修改参考截图

**5、检查IDEA设置中Gradle配置**

# 六、项目代码调试方式修改
- 常规情况,修改插件代码后,需要执行Gradle的copytolib,然后重启调试工程类,插件才生效,debug断点进入的是class文件,调试不方便
- 修改调试工程build.gradle配置,调整项目引入方式,插件代码修改后,只需重启调试工程类,插件即可生效
**【build.gradle配置代码示例:】**
```java
//jar包引用顺序:bos->biz->trd->cus,否则在轻量环境下,可能会引起dubbo报错
implementation fileTree(dir: bos, include: '*.jar')