Maven-war-plugin外掛的使用
阿新 • • 發佈:2019-01-27
在專案開發中,A依賴於B,如果兩個都是jar專案,那就好辦,但是今天在專案中,遇到A和B都是war專案的時候,那就遇到棘手的時候了,編譯會報錯,錯誤描述如下:
錯誤描述可以發現,沒有發現jar包,這樣就需要用到Maven-war-plugin外掛來把B專案生成jar包來給A依賴了,現在說說如何使用Maven-war-plugin外掛
1、在A(pom.xml)配置:新增Maven-war-plugin。
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <!--<attachClasses>true</attachClasses>,這樣B專案內就可以使用A專案定義的class了--> <attachClasses>true</attachClasses> <!--打包的時候如果不想使用WEB-INF/classes,則在外掛的配置內指定 <archiveClasses>true</archiveClasses> 即可,這樣會把專案的java檔案打包成jar放到WEB-INF/lib內--> <archiveClasses>true</archiveClasses>
<!--設定jar包名字,如果A中沒有定義該名字,那麼名字為classes,如下圖:--> <classesClassifier>api</classesClassifier> <!-- 相同點: packagingExcludes與webResources 均可以排除某些檔案。 不同點: packagingExcludes針對拷貝到target後的資源進行處理。 webResources針對編譯前的資源進行處理。 --> <packagingExcludes>WEB-INF/classes/**/**</packagingExcludes> <webResources> <resource> <directory>target/${project.artifactId}/WEB-INF/classes</directory> <excludes> <exclude>**/**</exclude> </excludes> </resource> </webResources> </configuration> </plugin> </plugins>
這樣就可以生成一個war包跟一個jar包了!!!!
2、在B(pom.xml)配置:
然後編譯B專案,專案編譯成功!!!!<dependency> <groupId>com.xxx</groupId> <artifactId>A</artifactId> <version>${xxx.version}</version> <type>jar</type> <!--如果A中定義的名字要一樣!!!--> <classifier>api</classifier> </dependency>