前提假设:项目中有两个Moudle,分别是Moudle1和Moudle2,它们有些代码是相同的,比如相同的类和API,重复书写当然可以正常运行,但是我们可以用maven打包成jar包,其他Moudle直接引用即可。
步骤
1.新建一个Module-common
pox.xml
中配置 Module1 和 Moudle2 同样使用的依赖:
<dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!-- 以后需要什么可以这里在引入. --></dependencies>
<optional>true</optional>
表示不传递依赖,也就是将来 Module1 或者 Moudle2 在引入这个共有包时,依赖不传递;默认值是 false,所以不设置会依赖传递
2.抽取公共的API/类
简单假设公共的类只有一个 Member.java
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Member implements Serializable {private Long id;private String name;private String pwd;private String mobile;private String email;private Integer gender;
}
3.Maven 打包
找到公共Module,执行clean和install
打包成功后提示
接着,我们可以在生成的 target 目录中就可以看到生成的jar 包
4.工程重构
在 Moudle1 和 Moudle中引入jar包进行使用
<dependency><groupId>com.hspedu.springcloud</groupId><artifactId>e_commerce_center_common_api</artifactId><version>1.0-SNAPSHOT</version></dependency>
artifactId 和 groupId是如何确定的呢,回到我们生成的target目录,找到maven-archiver/pom.properties
里面显示的就是我们生成jar包的信息
最后刷新一下maven,删除公共的部分代码就可以了,比如Member.java