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

java application maven項目打自定義zip包實(shí)例(推薦)

 更新時間:2017年05月19日 09:09:39   投稿:jingxian  
下面小編就為大家?guī)硪黄猨ava application maven項目打自定義zip包實(shí)例(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

1.配置pom.xml文件,添加build節(jié)點(diǎn)

<build>
    <!-- 輸出的包名 -->
    <finalName>p2p</finalName>


    <sourceDirectory>src/main/java</sourceDirectory>

    <resources>
      <!-- 控制資源文件的拷貝(默認(rèn)復(fù)制到classes目錄,最后打進(jìn)jar包) -->
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <!-- 排除外置的配置文件(運(yùn)行時注釋上使IDE能讀取到配置文件;打包時放開注釋讓配置文件外置方便修改) -->
        <excludes>
          <exclude>config.properties</exclude>
        </excludes>
      </resource>
      <!-- 配置文件外置的資源(存放到config目錄,也是classpath路徑,下面會配置) -->
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>config.properties</include>
        </includes>
        <targetPath>${project.build.directory}/config</targetPath>
      </resource>
    </resources>

    <plugins>
      <!-- 設(shè)置編譯版本 -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
          <encoding>UTF-8</encoding>
        </configuration>
      </plugin>

      <!-- 打包jar文件時,配置manifest文件,加入lib包的jar依賴 -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <!-- 清單文件,設(shè)置入口類和classpath -->
            <manifest>
              <mainClass>com.hdwang.Application</mainClass>
              <addClasspath>true</addClasspath>
              <classpathPrefix>lib/</classpathPrefix>
            </manifest>
            <!-- 給清單文件添加鍵值對,增加classpath路徑,這里將config目錄也設(shè)置為classpath路徑 -->
            <manifestEntries>
              <Class-Path>config/</Class-Path>
            </manifestEntries>
          </archive>
          <classesDirectory>
          </classesDirectory>
        </configuration>
      </plugin>


      <!-- 拷貝依賴的jar包到lib目錄 -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>copy</id>
            <phase>package</phase>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <outputDirectory>
                ${project.build.directory}/lib
              </outputDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>


      <!-- 解決資源文件的編碼問題 -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.5</version>
        <configuration>
          <encoding>UTF-8</encoding>
        </configuration>
      </plugin>

      <!-- 自定義打zip包 -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.2.1</version>
        <configuration>
          <descriptors>
            <descriptor>src/main/assembly/assembly.xml</descriptor>
          </descriptors>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

這個pom配置文件中注意紅色字體部分,這是實(shí)現(xiàn)配置文件外置的關(guān)鍵配置,思路就是配置文件不打進(jìn)jar包,放置到外面,且將此文件夾設(shè)置為classpath,這樣子程序便可以通過根據(jù)classloader很方便地讀取到配置文件了。下面給出讀取配置文件的java代碼,在IDE運(yùn)行時和打包后,代碼都不用修改,因?yàn)榕渲梦募偰軓腸lasspath路徑中找到?。?!

工具包的maven信息

<dependency>
  <groupId>commons-configuration</groupId>
  <artifactId>commons-configuration</artifactId>
  <version>1.10</version>
</dependency>

2.新建maven-assembly-plugin插件的配置文件assembly.xml,內(nèi)容如下

<assembly>
  <id>bin</id>
  <formats>
    <format>zip</format>
  </formats>
  <!-- 使用assembly拷貝依賴包 -->
  <!--<dependencySets>-->
    <!--<dependencySet>-->
      <!--&lt;!&ndash; 是否包含自己(將項目生成的jar包也輸出到lib目錄) &ndash;&gt;-->
      <!--<useProjectArtifact>false</useProjectArtifact>-->
      <!--<outputDirectory>lib</outputDirectory>-->
    <!--</dependencySet>-->
  <!--</dependencySets>-->
  <fileSets>
    <!-- 從目標(biāo)目錄拷貝文件去壓縮 -->
    <fileSet>
      <directory>target</directory>
      <includes>
        <include>*.jar</include>
      </includes>
      <outputDirectory>/</outputDirectory>
    </fileSet>
    <fileSet>
      <directory>target/lib</directory>
      <outputDirectory>/lib</outputDirectory>
    </fileSet>
    <fileSet>
      <directory>target/config</directory>
      <outputDirectory>/config</outputDirectory>
    </fileSet>

    <!-- 從源目錄拷貝文件去壓縮 -->
    <fileSet>
      <directory>src/main/run</directory>
      <includes>
        <include>*.sh</include>
        <include>*.cmd</include>
      </includes>
      <outputDirectory>/</outputDirectory>
    </fileSet>
    <fileSet>
      <directory>src/main</directory>
      <includes>
        <include>ReadMe.txt</include>
      </includes>
      <outputDirectory>/</outputDirectory>
    </fileSet>
  </fileSets>
</assembly>

這個插件在package生命周期中運(yùn)行,執(zhí)行mvn package或者mvn install便可觸發(fā)此插件的執(zhí)行。這里我注釋掉了拷貝依賴包的代碼,是因?yàn)樵趐om.xml文件中已經(jīng)配置了maven-dependency-plugin執(zhí)行這樣的操作,無須重復(fù)配置。fileSet可以配置需要拷貝壓縮的文件,directory路徑相對于項目根目錄,outputDirectory路徑相對于輸出目錄target,includes可以對拷貝的文件進(jìn)行篩選。這里可以拷貝壓縮輸出目錄的文件,應(yīng)該就是因?yàn)榇瞬寮\(yùn)行在程序編譯打包之后,這樣子就達(dá)到了我們自定義打包的要求:編譯->拷貝資源文件->項目打包->拷貝依賴的jar包-> assembly進(jìn)行拷貝壓縮。然后使用打出的zip包就可以去部署發(fā)布了,解壓后就能運(yùn)行。

3.程序打包流程示意圖

以上這篇java application maven項目打自定義zip包實(shí)例(推薦)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring Boot 在啟動時進(jìn)行配置文件加解密的方法詳解

    Spring Boot 在啟動時進(jìn)行配置文件加解密的方法詳解

    這篇文章主要介紹了Spring Boot 在啟動時進(jìn)行配置文件加解密的方法,本文通過實(shí)例給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Java 詳解單向加密--MD5、SHA和HMAC及簡單實(shí)現(xiàn)實(shí)例

    Java 詳解單向加密--MD5、SHA和HMAC及簡單實(shí)現(xiàn)實(shí)例

    這篇文章主要介紹了Java 詳解單向加密--MD5、SHA和HMAC及簡單實(shí)現(xiàn)實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 這一次搞懂Spring事務(wù)注解的解析方式

    這一次搞懂Spring事務(wù)注解的解析方式

    這篇文章主要介紹了這一次搞懂Spring事務(wù)注解的解析方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • java中的反射及其優(yōu)點(diǎn)說明

    java中的反射及其優(yōu)點(diǎn)說明

    這篇文章主要介紹了java中的反射及其優(yōu)點(diǎn)說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Java定義形式及可變參數(shù)實(shí)例解析

    Java定義形式及可變參數(shù)實(shí)例解析

    這篇文章主要介紹了Java定義形式及可變參數(shù)實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Spring?Boot整合Log4j2.xml的問題及解決方法

    Spring?Boot整合Log4j2.xml的問題及解決方法

    這篇文章主要介紹了Spring?Boot整合Log4j2.xml的問題,本文給大家分享解決方案,需要的朋友可以參考下
    2023-09-09
  • Netty的心跳檢測解析

    Netty的心跳檢測解析

    這篇文章主要介紹了Netty的心跳檢測解析,客戶端的心跳檢測對于任何長連接的應(yīng)用來說,都是一個非常基礎(chǔ)的功能,要理解心跳的重要性,首先需要從網(wǎng)絡(luò)連接假死的現(xiàn)象說起,需要的朋友可以參考下
    2023-12-12
  • 如何使用IDEA2022.1?創(chuàng)建Spring?Boot項目

    如何使用IDEA2022.1?創(chuàng)建Spring?Boot項目

    這篇文章主要介紹了如何使用IDEA2022.1?創(chuàng)建Spring?Boot項目,大家在使用idea開發(fā)工具時發(fā)現(xiàn)給以往的版本略微的不同,細(xì)心的小編在此記錄下,需要的朋友可以參考下
    2022-08-08
  • Mybatis中resultMap的使用總結(jié)

    Mybatis中resultMap的使用總結(jié)

    resultmap是mybatis中最復(fù)雜的元素之一,它描述如何從結(jié)果集中加載對象,主要作用是定義映射規(guī)則、級聯(lián)的更新、定制類型轉(zhuǎn)化器。今天通過本文給大家介紹Mybatis中resultMap的使用,感興趣的朋友參考下吧
    2021-06-06
  • Java之SM4加密解密的實(shí)現(xiàn)

    Java之SM4加密解密的實(shí)現(xiàn)

    這篇文章主要介紹了Java之SM4加密解密的實(shí)現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06

最新評論

大化| 曲阳县| 凉山| 台北市| 安徽省| 静乐县| 句容市| 报价| 当雄县| 来凤县| 平远县| 澎湖县| 永新县| 中卫市| 定南县| 三台县| 色达县| 西畴县| 冀州市| 尼勒克县| 广南县| 元江| 手游| 巩留县| 汪清县| 锡林郭勒盟| 南郑县| 都江堰市| 左权县| 大兴区| 陆河县| 黑龙江省| 巩留县| 饶河县| 凤冈县| 河津市| 中山市| 宁河县| 瑞安市| 蒲城县| 沧源|