目标
本文带你配置 IIDP 的开发环境,并运行后端服务。
开始前准备
- git
- Java 8
- IDEA
- maven
- MySQL 8.0+
拉取项目
使用 git 拉取 snest-demo 到本地,并使用 IDEA 打开。
配置 maven
打开 IDEA 配置 - Build,Execution,Deployment - Build Tools - Maven。使用自己的 maven 配置覆盖 IDEA 自带 maven 的配置。
修改 maven.settings.xml 添加仓库配置。
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>${user.home}/.m2/repository</localRepository>
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>central</mirrorOf>
<url>http://192.168.168.156:8081/repository/maven-public/</url>
</mirror>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>nexus</id>
<name>Nexus</name>
<url>http://192.168.168.156:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
<!--<always>true</always>-->
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<!--<always>true</always>-->
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Nexus</name>
<url>http://192.168.168.156:8081/repository/maven-snapshots/</url>
<releases>
<enabled>true</enabled>
<!--<always>true</always>-->
</releases>
<snapshots>
<enabled>true</enabled>
<!--<always>true</always>-->
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>nexus-aliyun</id>
<repositories>
<repository>
<id>nexus-aliyun</id>
<name>nexus-aliyun</name>
<url>https://maven.aliyun.com/repository/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus-aliyun</id>
<name>nexus-aliyun</name>
<url>https://maven.aliyun.com/repository/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus-aliyun</activeProfile>
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>
创建数据库
创建一个新的数据库,字符集选择 utf8mb4,排序字符集选择 utf8mb4-bin。
修改 snest-demo-server/src/main/resources/dbcp.properties 里面的数据库连接。
启动项目
先运行 maven 的 clean package。
跟 SpringBoot 项目类似,启动 snest-demo-server/src/main/java/com/sie/demo/server/Server.java
打开浏览器访问 http://localhost:8060/root/api/master 可以看到以下页面。
项目结构
- apps 目录
- apps.json 内置应用列表
- sie-snest-base-1.0-SNAPSHOT.jar
- sie-snest-file-1.0-SNAPSHOT.jar
- sie-snest-dict-1.0-SNAPSHOT.jar
- snest-apps 模块
- 需要开发的 APP
- snest-server 引擎服务
- application.properties 引擎配置信息
- dbcp.properties 数据库配置信息
启动逻辑如下
- 引擎启动的时候,会读取 apps/apps.json 文件。
- 然后根据 apps.json 的内容,先加载 apps 目录下的内置应用。
- 根据数据库的数据,加载其他方式安装的 app。
- 启动 Spring 容器,暴露服务
常见问题
application.properties 指定了不存在的 apps 目录
在 application.properties 或 application-dev.properties 文件里,有一个配置项 app.install.jar.dir。如果指定了一个不存在的路径,会导致无法加载内置应用。