- 新建工程目录,例如 outpatient-aaio
- 进入目录中
- 将本地需要启动的工程从仓库中克隆下来,完成后目录结构应类似:
outpatient-aaio
- module-project-1
- module-project-2
- module-project-3
- 在outpatient-aaio目录中执行命令
mvn pbc:init-pom执行完毕后将会生成一个包括目录中工程的pom,形如:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com.winning.wxp</groupId>
<artifactId>outpatient-aaio</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>winning-pbc-multi-modules-project</name>
<modules>
<module>module-project-1</module>
<module>module-project-2</module>
<module>module-project-3</module>
</modules>
<distributionManagement>
<repository>
<id>winning-releases</id>
<url>${maven.host}/repository/winning-releases/</url>
</repository>
<snapshotRepository>
<id>winning-snapshots</id>
<url>${maven.host}/repository/winning-snapshots/</url>
</snapshotRepository>
</distributionManagement>
<properties>
<maven.compiler.target>${java.version}</maven.compiler.target>
<java.version>1.8</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<project.manifest.gene>project.manifest.gene</project.manifest.gene>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.host>${mavenHost}</maven.host>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- 下面的配置用来定义要启动的非工程模块,例如1.3.1.0版本的winning-winex-person模块。如果有多个可以用分号分割,不可换行。 -->
<!--<pbc.modules>com.winning.person:winning-winex-person:1.3.1.0-SNAPSHOT;</pbc.modules>-->
</properties>
<repositories>
<repository>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<id>winning-local-nexus</id>
<url>${maven.host}/repository/maven-public/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<id>winning-local-nexus</id>
<url>${maven.host}/repository/maven-public/</url>
</pluginRepository>
</pluginRepositories>
</project>ps. 如果已经生成过一次,可以使用-Doverwrite 覆盖生成
#包含开关 -DcreateStartScript -DskipAkso
mvn pbc:init-home此命令会进行以下动作
- 在工程目录下生成以下目录结构:
outpatient-aaio
- .idea
- configure
- launcher
- module
- ms_dev
- startinfo
- 解析当前工程的依赖
- 读取pom.xml中 properties 内的属性<pbc.modules></pbc.modules>,此属性用于下载 目录中不存在代码的模块,格式为 groupId:artifactId:version , 多个时使用分号;分割;
- 解析工程依赖,判断工程对pbc框架的依赖版本,若当前工程不包含框架的源码,则将框架的 pom信息也加入到步骤3 的解析结果中
- 下载步骤 3、4 中解析到的模块
- 结合工程的依赖与下载的模块在 modules中按模块生成依赖列表
- 根据框架版本拉取启动器jar包放入launcher目录中
- 根据目录中的工程按模块生成ms_dev中的工程模块列表
- 结合工程及下载的模块在startinfo中生成启动列表
- 在 .idea/workspace.xml中生成idea的启动配置项\
- 如果使用了-DcreateStartScript 开关,则在当前工程目录下会生成 startup脚本,用于直接启动程序
- 如果使用了-DskipAkso开关,则当工程中没有akso代码时,跳过akso模块的下载与依赖计算(目前主要运维平台本地开发须增加此开关)
#包含开关 -DcreateStartScript
mvn pbc:init-run此命令将在.idea/workspace.xml中生成idea的启动配置,与init-home的步骤10 相同 如果使用了-DcreateStartScript 开关,则在当前工程目录下会生成 startup脚本,用于直接启动程序,与init-home的步骤11相同
#包含开关 -DskipAkso
mvn pbc:package此命令将在.idea/target/ 目录下生成当前工程对应的制品结果modules目录 如果使用了-DskipAkso开关,则当工程中没有akso代码时,跳过akso模块的下载与依赖计算(目前主要运维平台本地开发须增加此开关)