2019年06月11日   Spring, 码农之路   6,770 次浏览
有这样一个需求,有两个可以独立部署的SpringBoot项目A和B,遇到下面这些场景:
因为A和B两个项目是两个不同的团队在维护,所以不要说什么把公用的部分独立成jar包,这样不现实。
下面来讲下我在项目中是怎么解决这个问题的,分war包引用和jar包引用两种方式,两种方式各有优缺点,关键看能不能满足项目的需求:
<dependencies>
<!-- 这里引用B项目的war包 -->
<dependency>
<groupId>cn.yyjjssnn</groupId>
<artifactId>B</artifactId>
<version>1.0</version>
<type>war</type>
</dependency>
</dependencies>
<build>
<plugins>
<!-- 需要删除B项目的Application文件,否则项目会启动两次 -->
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<packagingExcludes>
%regex[WEB-INF/classes/cn/yyjjssnn/Application(?!A).*],
%regex[WEB-INF/classes/cn/yyjjssnn/ServletInitializer(?!A).*]
</packagingExcludes>
</configuration>
</plugin>
</plugins>
</build>
<build>
<plugins>
<!-- 打包jar给其他项目使用 -->
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<!-- 排除不需要打包的文件 -->
<excludes>
<exclude>application-druid.yml</exclude>
<exclude>application.yml</exclude>
<exclude>logback.xml</exclude>
<exclude>cn/yyjjssnn/ApplicationB.*</exclude>
<exclude>cn/yyjjssnn/ServletInitializerB.*</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<!-- 这里引用B项目的jar包 -->
<dependency>
<groupId>cn.yyjjssnn</groupId>
<artifactId>B</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
好了,这样配置后A项目就能引用或使用B项目的功能了,需要注意的一点,就是当B项目有改动时,需要B项目重新打包或者重新发布给A项目使用。
>>> Hello World <<<
这篇内容是否帮助到你了呢?
如果你有任何疑问或有建议留给其他朋友,都可以给我留言。
目前有有一条留言:
上面的比较笼统,的内容需不需要修改那