最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

maven多模塊工程打包部署的方法步驟

 更新時間:2017年10月16日 14:08:56   作者:xb_smart  
本篇文章主要介紹了maven多模塊工程打包部署的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

一般maven多模塊工程結構如下圖,圖中分為dao數(shù)據(jù)層和上層web層(當然還可以有service層),在進行多模塊劃分的時候,一般將dao層采用jar進行打包,web層進行war打包。在進行war包部署時,發(fā)現(xiàn)dao是以jar包形式存在于lib包目錄下,如果在部署服務器上需要進行相關配置修改會比較麻煩。因此研究了下用maven進行合并打包的方法:

1.確保dao pom.xml中有以下配置

<resources>
  <resource>
    <directory>${basedir}/src/main/java</directory>
    <includes>
      <include>**/*.xml</include>
      <include>**/*.properties</include>
    </includes>
  </resource>
  <resource>
    <directory>${basedir}/src/main/resources</directory>
  </resource>
</resources>

2.在dao目錄下執(zhí)行:mvn clean install -Dmaven.test.skip=true,以生成jar包

3.在web工程pom.xml添加以下插件配置

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-dependency-plugin</artifactId>
  <executions>
    <execution>
      <id>unpack</id>
      <phase>generate-resources</phase>
      <goals>
        <goal>unpack</goal>
      </goals>
      <configuration>
        <artifactItems>
          <artifactItem>
            <groupId>com.test</groupId>
            <artifactId>dao</artifactId>
            <version>1.0</version>
            <type>jar</type>
            <overWrite>true</overWrite>
            <outputDirectory>./target/classes</outputDirectory>
          </artifactItem>
        </artifactItems>
      </configuration>
    </execution>
  </executions>
</plugin>

上述插件表示將dao-1.0.jar解壓至web工程的target/classes目錄中(即工程編譯源碼目錄)

4.運行web工程,即可發(fā)現(xiàn)dao相關配置文件及源碼已合并過來。(注意,此時在默認的war包的lib中還會包含dao的jar)

若還需要對war工程進行jar打包部署,則在web工程pom.xml中添加jar打包插件即可

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <executions>
    <execution>
      <id>1</id>
      <phase>package</phase>
      <goals>
        <goal>jar</goal>
      </goals>
      <configuration>
        <classesDirectory>./target/classes</classesDirectory>
        <excludes>
          <exclude>*.properties</exclude>
          <exclude>*.xml</exclude>
        </excludes>
        <finalName>web</finalName>
        <outputDirectory>./target/WEB-INF/lib</outputDirectory>
      </configuration>
    </execution>
  </executions>
</plugin>

加入后,在web下重新執(zhí)行mvn install命令,會在target/WEB-INF/lib目錄下生成web.jar文件,jar中不包含properties和xml文件(去掉excludes,默認情況下會將所有文件進行打包)。

在上面情況下并沒有將配置文件打包,因此需要將配置文件進行拷貝:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-resources-plugin</artifactId>
  <version>2.4.3</version>
  <executions>
    <execution>
      <id>copy-resources</id>
      <phase>package</phase>
      <goals>
        <goal>copy-resources</goal>
      </goals>
      <configuration>
        <encoding>UTF-8</encoding>
        <outputDirectory>./target/WEB-INF/classes</outputDirectory>
        <resources>
          <resource>
            <directory>./target/classes</directory>
            <includes>
              <include>*.properties</include>
            </includes>
            <filtering>true</filtering>
          </resource>
        </resources>
      </configuration>
    </execution>
    <!-- 拷貝web.xml文件-->
    <execution>
      <id>copy-web-xml</id>
      <phase>package</phase>
      <goals>
        <goal>copy-resources</goal>
      </goals>
      <configuration>
        <encoding>UTF-8</encoding>
        <outputDirectory>./target/WEB-INF</outputDirectory>
        <resources>
          <resource>
            <directory>./src/main/webapp/WEB-INF</directory>
            <includes>
              <include>*.xml</include>
            </includes>
            <filtering>true</filtering>
          </resource>
        </resources>
      </configuration>
    </execution>
  </executions>
</plugin>

通過上面配置方式,則可將配置文件拷貝至target/WEB-INF/classes目錄下

通過上述配置,對于web工程部署,還缺少所依賴的其他jar包,因此需要將jar包拷貝過來(同時去除依賴的dao):

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-dependency-plugin</artifactId>
  <executions>
    <execution>
      <id>copy</id>
      <phase>install</phase>
      <goals>
        <goal>copy-dependencies</goal>
      </goals>
      <configuration>
        <outputDirectory>./target/WEB-INF/lib</outputDirectory>
        <excludeGroupIds>com.test</excludeGroupIds>
      </configuration>
    </execution>
  </executions>
</plugin>

通過以上步驟可在target目錄看到web常規(guī)工程部署結構:

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • SpringBoot系列教程之dubbo和Zookeeper集成方法

    SpringBoot系列教程之dubbo和Zookeeper集成方法

    這篇文章主要介紹了SpringBoot系列教程之dubbo和Zookeeper集成方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Java的Spring框架的三種連接池的基本用法示例

    Java的Spring框架的三種連接池的基本用法示例

    這篇文章主要介紹了Java的Spring框架的三種連接池的基本用法示例,Spring框架是Java下注明的SSH三大web開發(fā)框架之一,需要的朋友可以參考下
    2015-11-11
  • 如何用Dos命令運行Java版HelloWorld你知道嗎

    如何用Dos命令運行Java版HelloWorld你知道嗎

    這篇文章主要介紹了在dos窗口中編譯和運行java文件的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • springboot編程式事務TransactionTemplate的使用說明

    springboot編程式事務TransactionTemplate的使用說明

    這篇文章主要介紹了springboot編程式事務TransactionTemplate的使用說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • mybatisPlus如何使用MetaObjectHandler對字段進行更新

    mybatisPlus如何使用MetaObjectHandler對字段進行更新

    這篇文章主要介紹了mybatisPlus如何使用MetaObjectHandler對字段進行更新問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • dubbo擴展點AOP切面功能擴展示例詳解

    dubbo擴展點AOP切面功能擴展示例詳解

    這篇文章主要為大家介紹了dubbo擴展點AOP切面功能擴展示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Java連接sftp服務器實現(xiàn)上傳下載功能

    Java連接sftp服務器實現(xiàn)上傳下載功能

    這篇文章主要介紹了java連接sftp服務器實現(xiàn)上傳下載,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • 通過jstack分析解決進程死鎖問題實例代碼

    通過jstack分析解決進程死鎖問題實例代碼

    這篇文章主要介紹了通過jstack分析解決進程死鎖問題實例代碼,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • Java中callable的實現(xiàn)原理

    Java中callable的實現(xiàn)原理

    本文主要介紹了Java里的callable的實現(xiàn)原理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-03-03
  • Spring基于注解管理bean實現(xiàn)方式講解

    Spring基于注解管理bean實現(xiàn)方式講解

    很多時候我們需要根據(jù)不同的條件在容器中加載不同的Bean,或者根據(jù)不同的條件來選擇是否在容器中加載某個Bean,這就是Bean的加載控制,一般我們可以通過編程式或注解式兩種不同的方式來完成Bean的管理
    2023-01-01

最新評論

谢通门县| 佛教| 康定县| 资讯 | 中方县| 金秀| 山西省| 阜南县| 句容市| 芜湖县| 诏安县| 兴化市| 游戏| 阿图什市| 浙江省| 焉耆| 新巴尔虎左旗| 陇南市| 吴川市| 太原市| 阿合奇县| 浦县| 凌源市| 承德县| 华阴市| 武穴市| 望都县| 博兴县| 衡水市| 博爱县| 克拉玛依市| 甘德县| 鸡东县| 桃江县| 米脂县| 霞浦县| 民丰县| 泾阳县| 卓资县| 利津县| 米泉市|