首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Maven 多模塊 Web 項目 WAR 包依賴最佳實踐

     編輯:Java 綜合教學

Maven 多模塊 Web 項目 WAR 包依賴最佳實踐

場景:puzzle-web(基礎 Web 模塊)與 puzzle-web-demo(擴展 Web 模塊),後者依賴前者。

1. puzzle-web 打包配置

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-war-plugin</artifactId>
  <version>2.4</version>  <!-- 避免產生帶時間戳 jar -->
  <configuration>
    <archiveClasses>false</archiveClasses>  <!-- 不將 classes 打成 jar,防配置文件重複 -->
    <attachClasses>true</attachClasses>   <!-- 產生 classes jar 供編譯期依賴 -->
  </configuration>
</plugin>

2. 私服產物

  • puzzle-web-1.0.war — 部署用;
  • puzzle-web-1.0-classes.jar — 編譯依賴用。

3. puzzle-web-demo 依賴聲明

<dependency>
  <groupId>com.puzzle</groupId>
  <artifactId>puzzle-web</artifactId>
  <version>1.0</version>
  <type>war</type>       <!-- 運行期需 war 包 -->
  <scope>runtime</scope>
</dependency>
<dependency>
  <groupId>com.puzzle</groupId>
  <artifactId>puzzle-web</artifactId>
  <version>1.0</version>
  <classifier>classes</classifier> <!-- 編譯期用 classes jar -->
  <scope>provided</scope>
</dependency>

要點:war 類型供運行期皮膚合併,classes classifier 供編譯期,作用域 provided 避免重複打包。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved