• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > java application maven项目打自定义zip包实例(推荐)

java application maven项目打自定义zip包实例(推荐)

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了maven application,java application,java application程序,java application对象,java application类等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

1.配置pom.xml文件,添加build节点

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


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

    <resources>
      <!-- 控制资源文件的拷贝(默认复制到classes目录,最后打进jar包) -->
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <!-- 排除外置的配置文件(运行时注释上使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>
      <!-- 设置编译版本 -->
      <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>
            <!-- 清单文件,设置入口类和classpath -->
            <manifest>
              <mainClass>com.hdwang.Application</mainClass>
              <addClasspath>true</addClasspath>
              <classpathPrefix>lib/</classpathPrefix>
            </manifest>
            <!-- 给清单文件添加键值对,增加classpath路径,这里将config目录也设置为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>
</div>

这个pom配置文件中注意红色字体部分,这是实现配置文件外置的关键配置,思路就是配置文件不打进jar包,放置到外面,且将此文件夹设置为classpath,这样子程序便可以通过根据classloader很方便地读取到配置文件了。下面给出读取配置文件的java代码,在IDE运行时和打包后,代码都不用修改,因为配置文件总能从classpath路径中找到!!!

工具包的maven信息

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

2.新建maven-assembly-plugin插件的配置文件assembly.xml,内容如下

<assembly>
  <id>bin</id>
  <formats>
    <format>zip</format>
  </formats>
  <!-- 使用assembly拷贝依赖包 -->
  <!--<dependencySets>-->
    <!--<dependencySet>-->
      <!--<!– 是否包含自己(将项目生成的jar包也输出到lib目录) –>-->
      <!--<useProjectArtifact>false</useProjectArtifact>-->
      <!--<outputDirectory>lib</outputDirectory>-->
    <!--</dependencySet>-->
  <!--</dependencySets>-->
  <fileSets>
    <!-- 从目标目录拷贝文件去压缩 -->
    <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>
</div>

这个插件在package生命周期中运行,执行mvn package或者mvn install便可触发此插件的执行。这里我注释掉了拷贝依赖包的代码,是因为在pom.xml文件中已经配置了maven-dependency-plugin执行这样的操作,无须重复配置。fileSet可以配置需要拷贝压缩的文件,directory路径相对于项目根目录,outputDirectory路径相对于输出目录target,includes可以对拷贝的文件进行筛选。这里可以拷贝压缩输出目录的文

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • java application maven项目打自定义zip包实例(推荐)
  • java application maven项目打自定义zip包实例(推荐)

相关文章

  • 2017-05-28基于Spring开发之自定义标签及其解析
  • 2017-05-28Java FTP上传下载删除功能实例代码
  • 2017-05-28给Java菜鸟的一些建议_关于Java知识点归纳(J2EE and Web 部分)
  • 2017-05-28实例详解java Struts2的配置与简单案例
  • 2017-05-28Mybatis实现数据的增删改查实例(CRUD)
  • 2017-05-28Java内存分布归纳整理详解
  • 2017-05-28Spring MVC学习笔记之json格式的输入和输出
  • 2017-05-28详解SpringMVC和MyBatis框架开发环境搭建和简单实用
  • 2017-05-28详解Spring 基于 Aspect 注解的增强实现
  • 2017-05-28Spring Boot启动过程(六)之内嵌Tomcat中StandardHost、StandardContext和StandardWrapper的启动教程详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 详解使用Spring MVC统一异常处理实战
    • java 实例化类详解及简单实例
    • 深入理解java动态代理的两种实现方式(JDK/Cglib)
    • SpringMVC中MultipartFile上传获取图片的宽度和高度详解
    • Java中的FileInputStream 和 FileOutputStream 介绍_动力节点Java学院整理
    • 基于Spring开发之自定义标签及其解析
    • Java中的FilterOutputStream 简介_动力节点Java学院整理
    • java实现输出字符串中第一个出现不重复的字符详解
    • java中正则表达式实例详解
    • 关于Java变量的声明、内存分配及初始化详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有