Maven打包插件-Assembly

2019-10-24  本文已影响0人  bin_lifecycle

1. 在dubbo的provider项目(实现类项目)中pom.xml配置assembly插件信息

<!-- 指定项目的打包插件信息 -->
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <!-- 指定打包描述文件的位置:相对项目根目录的路径 -->
                    <!-- assembly打包的描述文件 -->
                    <descriptor>assembly/assembly.xml</descriptor>
                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>

2.在项目根目录下新建assembly文件夹

项目根目录下新建assembly文件夹

3.在assembly文件夹中新建assembly.xml

<?xml version='1.0' encoding='UTF-8'?>
<assembly
    xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
    <!-- 该字符会添加到最终tar.gz包的名称后面,作为后缀 -->
    <id>assembly</id>
    <!-- 指定打包的格式为tar.gz,该类型压缩包在linux中比较常见 -->
    <formats>
        <format>tar.gz</format>
    </formats>
    <!-- 在tar.gz压缩包中是否包含根文件夹,该根文件夹名称和tar.gz去掉id后缀一致 -->
    <includeBaseDirectory>true</includeBaseDirectory>
    <fileSets>
        <!-- 将项目根路径下assembly/bin路径中的内容打包到压缩包中的根目录下的bin目录中 -->
        <fileSet>
            <!-- 相对项目根路径的相对路径 -->
            <directory>assembly/bin</directory>
            <outputDirectory>bin</outputDirectory>
            <!-- 设置最终tar.gz中该文件夹下的权限,跟linux权限写法一致 -->
            <fileMode>0755</fileMode>
        </fileSet>
        <!-- 将项目根路径下assembly/conf路径中的内容打包到压缩包中的根目录下的conf目录中 -->
        <fileSet>
            <directory>assembly/conf</directory>
            <outputDirectory>conf</outputDirectory>
            <!-- 设置其linux权限 -->
            <fileMode>0644</fileMode>
        </fileSet>
    </fileSets>
    <!-- 将所有依赖的jar包打包到压缩包中的根目录下的lib目录中 -->
    <!-- 此lib目录中包含自己开发的项目jar包以及demo_service.jar,还有第三方的jar包 -->
    <dependencySets>
        <dependencySet>
            <outputDirectory>lib</outputDirectory>
        </dependencySet>
    </dependencySets>
</assembly>

4.解压下载的dubbo-monitor-simple-2.5.3-assembly.tar.gz压缩包,把解压后的bin和conf粘贴到项目下assembly文件夹中.

解压后的文件目录
粘贴bin,conf文件夹到assembly文件夹中

5.idea的Maven选项中--> maven clean install

打包子模块,先将父工程clean install 父工程clean install后,打包provider模块
注意:使用IDEA打包maven多模块项目中的子模块,需要先将父项目 clean install,然后子项目clean package发布,不然会报Could not resolve dependencies for project的错误,原因是多个模块之间具有依赖关系,只打包某个模块时,依赖的模块没有install,所以需要先将父工程clean install,子模块打包时,依赖的子模块就有了

6.把压缩包复制到window或linux中

此时复制到桌面的abc文件夹并解压 解压后的文件夹
bin文件夹下的命令
conf文件夹下的配置,此时dubbo.properties里没有配置,dubbo的配置都在provider的xml文件中配置了 lib文件夹下的依赖
上一篇下一篇

猜你喜欢

热点阅读