`
qindongliang1922
  • 浏览: 2170984 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117074
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:125420
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:59487
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71015
社区版块
存档分类
最新评论

Maven-assemble打包使用案例

    博客分类:
  • JAVA
阅读更多

在开发Maven项目中,我们可能有各种各样的打包需求,当然最简单的就是,把整个Application打包成一个jar,这是Spring-boot项目中,常见的打包项目,有些项目可能比较复杂,还需要打包一些外部的配置的文件,或者自定义的shell脚本或者bat命令等,这时候使用assemble命令就比较方便了。

项目结构目录如下:





除了标准的创建maven项目会自带
src/main/java
src/main/resource
src/test/java
外,我们还自定义了bin,conf,assemble目录,其中bin目录用来存放项目启动,停止的一些脚本,conf存放了一些
外部配置文件,外部文件比较灵活,比如参数改了,不需要重新编译,只需要重启这个项目即可,assemble存放了我们打包的描述文件package.xml,内容如下:

<?xml version="1.0"?>
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">

    <!--项目标识,设置的话,生成后的zip文件会加上此后缀-->
    <id></id>
    <!--打包格式-->
    <formats>
        <format>zip</format>
    </formats>
    <!--是否包含根目录文件夹-->
    <includeBaseDirectory>true</includeBaseDirectory>

    <fileSets>

        <!--<fileSet>-->
            <!--<directory>${project.basedir}\src\main\resources</directory>-->
            <!--<outputDirectory>\</outputDirectory>-->
            <!--<includes>-->
                <!--<include>some/path</include>-->
            <!--</includes>-->
            <!--<excludes>-->
                <!--<exclude>some/path1</exclude>-->
            <!--</excludes>-->
        <!--</fileSet>-->

        <!--自定义文件描述集-->
        <fileSet>
            <!--自定义脚本目录打包-->
            <directory>${project.basedir}\src\main\bin</directory>
            <outputDirectory>\bin</outputDirectory>
            <includes>
                <include>*.*</include>
            </includes>
            <!--设置权限-->
            <fileMode>0755</fileMode>
        </fileSet>

        <fileSet>
            <!--外部配置文件打包-->
            <directory>${project.basedir}\src\main\config</directory>
            <outputDirectory>\config</outputDirectory>
            <includes>
                <include>*.*</include>
            </includes>
            <fileMode>0644</fileMode>
        </fileSet>
    </fileSets>

    <dependencySets>

        <dependencySet>
            <useProjectArtifact>true</useProjectArtifact>
            <outputDirectory>lib</outputDirectory>
            <!-- 将scope为runtime的依赖包打包到lib目录下。 -->
            <scope>runtime</scope>
        </dependencySet>
    </dependencySets>

 </assembly>



然后在主pom.xml中,加入如下一段内容:


  <build>
        <plugins>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <!--<appendAssemblyId>true</appendAssemblyId>-->
                    <descriptors> <!--描述文件路径-->
                        <descriptor>src/main/assemble/package.xml</descriptor>
                    </descriptors>
                </configuration>
                <executions>
                    <execution>
                        <id>make-zip</id>
                        <!-- 绑定到package生命周期阶段上 -->
                        <phase>package</phase>
                        <goals>
                            <!-- 绑定到package生命周期阶段上 -->
                            <goal>single</goal>
                        </goals>

                    </execution>
                </executions>
            </plugin>

        </plugins>

    </build>



至此,我们在执行mvn clean package 时,就会发现target目录下,多了一个zip的压缩包:





将zip包解压后,如下:







我们就可以直接将压缩包,传到linux上执行脚本启动了,需要注意的是,在windows下编辑的脚本文件,在linux上可能执行不成功,大家可以下载一个dos2unix的工具,对脚本格式重新修改即可。

参考资料:
http://www.cnblogs.com/JerryWang1991/p/3936378.html
http://skydream.iteye.com/blog/437937
http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html


最后欢迎大家扫码关注微信公众号:我是攻城师(woshigcs),我们一起学习,进步和交流!(woshigcs)
本公众号的内容是有关搜索和大数据技术和互联网等方面内容的分享,也是一个温馨的技术互动交流的小家园,有什么问题随时都可以留言,欢迎大家来访!

  • 大小: 13.2 KB
  • 大小: 2.8 KB
  • 大小: 2.1 KB
1
1
分享到:
评论

相关推荐

    apache-maven-3.8.6.zip

    apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-...

    Maven exec-maven-plugin:执行外部命令的实践指南

    本文详细介绍了exec-maven-plugin的基本概念、配置方法、执行简单和系统脚本、捕获命令输出、条件执行、并发执行、使用环境变量、错误处理、高级配置、使用案例以及局限性。通过这些知识点,读者可以更加自信地在...

    Maven使用tomcat8-maven-plugin插件.docx

    Maven 使用 tomcat8-maven-plugin 插件 Maven 是一个流行的构建自动化工具,它可以帮助开发者自动完成项目的编译、测试、打包、部署等任务。 Tomcat 是一个流行的 Web 服务器,Maven 提供了一个插件 tomcat8-maven-...

    Maven build插件之Maven-assembly-plugin自定义打包

    Maven-assembly-plugin是maven中针对打包任务而提供的标准插件,可以实现自定义打包。主要提供如下功能: ● 提供一个把工程依赖元素、模块、网站文档等其他文件存放到单个归档文件里。 ● 打包成指定格式分发包,...

    SpringBoot项目使用maven-assembly-plugin根据不同环境打包成tar.gz或者zip

    总的来说,`maven-assembly-plugin`是Maven构建过程中的一个重要工具,它帮助开发者灵活地定制打包过程,适应不同环境的需求。结合Spring Boot项目,我们可以更高效地管理和部署应用程序,提高开发和运维的效率。

    apache-maven-3.9.0-bin.tar

    Maven的插件系统也是其强大之处,通过安装额外的插件,可以支持更多的构建任务,如生成源码文档(javadoc)、执行单元测试(maven-surefire-plugin)、打包成不同格式(如JAR、WAR或EAR)等。 "linux版本maven"指的...

    apache-maven-3.3.9.rar

    apache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9....

    apache-maven-3.6.0.zip

    10. **maven-plugin-api** 和 **maven-plugin-registry**:提供API和接口供Maven插件使用,允许开发者编写自定义插件来扩展Maven的功能。 11. **maven-core** 和 **maven-model**:Maven的核心组件,负责解析POM,...

    apache-maven-3.9.6-bin

    例如,maven-compiler-plugin用于编译Java源码,maven-surefire-plugin用于执行单元测试,maven-jar-plugin则负责创建JAR文件。 在实际开发中,Maven的`settings.xml`文件通常放在用户的主目录下的`.m2`目录下,它...

    apache-maven-3.5.4-bin.tar.gz

    例如,使用maven-surefire-plugin进行单元测试,maven-javadoc-plugin生成API文档,maven-source-plugin打包源代码。在`pom.xml`中定义插件并配置相关参数,然后通过`mvn plugin:goal`执行。 总之,Apache Maven ...

    maven-compiler-plugin-2.0.2.jar.zip

    《深入解析Maven编译插件:maven-compiler-plugin-2.0.2.jar》 在Java开发领域,Maven作为一个强大的项目管理和构建工具,极大地简化了项目的构建过程。而Maven的核心就在于其插件系统,其中maven-compiler-plugin...

    maven集成jetty所需jar包maven-jetty-plugin,多版本

    - 使用旧版本的`maven-jetty-plugin`可能会导致某些新特性无法使用或与其他库冲突,因此保持插件更新是很重要的。 6. 结论: `maven-jetty-plugin`简化了Java Web应用的开发和测试过程,通过Maven的命令行即可...

    apache-maven-3.9.2.zip配置好的阿里云仓库文件

    5. Maven插件:Maven通过插件机制扩展其功能,如maven-compiler-plugin用于编译,maven-surefire-plugin进行测试,maven-jar-plugin打包成JAR文件等。每个插件都有多个目标(goals),这些目标在生命周期的不同阶段...

    apache-maven-3.8.4-bin.zip maven下载鬼慢

    Maven还支持插件机制,允许扩展其功能,例如,你可以使用maven-javadoc-plugin生成API文档,maven-surefire-plugin执行单元测试,或者maven-site-plugin生成项目网站。在pom.xml中定义插件及其配置,即可实现这些...

    最新Maven-apache-maven-3.8.1-Repository-配置好的

    - **插件**: Maven的扩展性主要体现在插件上,如`maven-compiler-plugin`用于编译Java代码,`maven-surefire-plugin`用于执行单元测试。 - **版本控制**: Maven遵循严格的版本号规则,例如`1.0.0-SNAPSHOT`表示开发...

    maven资源 apache-maven-3.3.9-bin.zip

    每个阶段都可以通过特定的插件来执行,例如,`maven-compiler-plugin`用于编译源代码,`maven-surefire-plugin`负责运行单元测试。Maven通过使用Project Object Model (POM)文件来描述项目信息,包括依赖、构建配置...

    maven-jar-plugin-3.1.1.jar

    maven-jar-plugin-3.1.1.jar

    apache-maven-3.5.3-src

    例如,maven-jar-plugin用于创建JAR文件,maven-surefire-plugin用于运行单元测试。在"apache-maven-3.5.3-src"中,你会看到各种插件的源代码,这有助于理解它们的工作原理并自定义它们的行为。 总的来说,Apache ...

    apache-maven-3.8.4安装包

    例如,maven-compiler-plugin用于编译Java源码,maven-surefire-plugin负责运行单元测试,maven-jar-plugin用来打包jar文件。 在软件开发过程中,Maven还可以生成项目报告,包括Javadoc、代码覆盖率报告等。同时,...

Global site tag (gtag.js) - Google Analytics