最近整理基礎框架,有些項目不想分布式,所以基礎框架必須同時可獨立部署,也可直接被作為依賴和業務工程打到一起,記錄下解決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,后面再細化整理。