做CSE的开发有一段时间了,前段时间太忙,现在终于有空总结了一些在CSE开发方面的经验,大伙看看是不是有用?
- 项目管理
-
Maven依赖管理
推荐: 业务使用Maven的dependencyManagement来管理服务的依赖关系,这样能够有效的管理三方件冲突。推荐的做法:
1) 业务创建一个pom dependencyManagement
2) 在项目的pom中,优先引用业务自身的dependencyManagement,再引用CSE的dependencyManagement,如下:
-
Xml 代码
01 |
<dependencyManagement> |
|
02 |
<dependencies> |
03 |
<dependency> |
|
04 |
<groupId>com.test</groupId> |
05 |
<artifactId>test-dependencies</artifactId> |
|
06 |
<version>1.0.0-SNAPSHOT</version> |
07 |
<type>pom</type> |
|
08 |
<scope>import</scope> |
09 |
</dependency> |
|
10 |
<dependency> |
11 |
<groupId>com.huawei.paas.cse</groupId> |
|
12 |
<artifactId>cse-dependency</artifactId> |
13 |
<version>${cse.version}</version> |
|
14 |
<type>pom</type> |
15 |
<scope>import</scope> |
|
16 |
</dependency> |
17 |
</dependencies> |
|
18 |
</dependencyManagement> |
2. 传统项目切换
有些存量老项目是使用Ant构建的,所有的依赖包都是直接引入项目,不能自动的解决冲突,所以如果能切换成maven的建议优先切换成maven
3. 传统项目直接引用CSE
需要按需引入对CSE的依赖,再使用maven工具导出所有依赖的jar包,使用文件对比工具找出和以前版本有冲突的版本,人工去除冲突。
1)首先确认是使用那种开发模式和传输方式,比如使用SpringMVC+Rest over Vertx模式,是否使用到CSE提供的一些其它扩展功能。
2)新建一个maven工程,建议到华为云https://console.huaweicloud.com/cse/?region=cn-south-1#/cse/projectLocal下载一个demo工程,里面包含一个CSE推荐的依赖。如果想按需加载,需要自己根据实际功能来进行选择。功能列表如下:
3) 使用maven-dependency-plugin导出所有的依赖包
-
Xml 代码
01 |
<build> |
|
02 |
<plugins> |
03 |
<plugin> |
|
04 |
<groupId>org.apache.maven.plugins</groupId> |
05 |
<artifactId>maven-dependency-plugin</artifactId> |
|
06 |
<executions> |
07 |
<execution> |
|
08 |
<id>copy-dependencies</id> |
09 |
<phase>package</phase> |
|
10 |
<goals> |
11 |
<goal>copy-dependencies</goal> |
|
12 |
</goals> |
13 |
<configuration> |
|
14 |
<outputDirectory>target/lib</outputDirectory> |