最近整理基础框架,有些项目不想分布式,所以基础框架必须同时可独立部署,也可直接被作为依赖和业务工程打到一起,记录下解决war项目依赖的要点,一开始用warpath,结果报找不到,有些帖子还是17年的,于是继续查看。
warpath 是个坑,按照网上的说明基本跑不通,可能是maven-war-plugin 升级了不兼容,不建议再去使用warpath了,maven-war-plugin就可以搞定所有的事情了。直接上结果了。
base-webapp
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<!--注意增加这两行,在打包时相关的类会被独立打成jar
<attachClasses>true</attachClasses>
<classesClassifier>api</classesClassifier>-->
<!-- <archiveClasses>true</archiveClasses> --> <!-- 最好不要archiveClasses,否则有些配置的classpath而非classpath*就完了 -->
<attachClasses>true</attachClasses>
</configuration>
<version>3.2.0</version>
</plugin>
XXX-webapp依赖配置:
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<!-- <dependentWarExcludes>WEB-INF/lib/*</dependentWarExcludes> -->
<!-- <archiveClasses>true</archiveClasses> -->
</configuration>
<version>3.2.0</version>
</plugin> <dependencies>
<dependency>
<groupId>com.XXX.YYY</groupId>
<artifactId>base-webapp</artifactId>
<version>1.0.0-SNAPSHOT</version>
<type>war</type>
</dependency>
<dependency>
<groupId>com.XXX.YYY</groupId>
<artifactId>base-webapp</artifactId>
<version>1.0.0-SNAPSHOT</version>
<type>jar</type>
<classifier>classes</classifier>
<scope>provided</scope>
</dependency>
这样XXX-webapp就把所有classes和静态资源都打包进去了,但是默认还会生成target/work目录,这个后面再看,现在没时间看。
还没有整合为spring boot,后面再细化整理。