美文网首页
Maven打包插件-Assembly

Maven打包插件-Assembly

作者: bin_lifecycle | 来源:发表于2019-10-24 00:02 被阅读0次

    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文件夹中
    • 4.1 清空conf/dubbo.properties中内容.


      清空conf/dubbo.properties中的内容

    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,子模块打包时,依赖的子模块就有了
    • 5.1 在target下出现: 项目名-版本-assembly.tar.gz压缩包


      打包后的压缩包

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

    此时复制到桌面的abc文件夹并解压 解压后的文件夹
    bin文件夹下的命令
    conf文件夹下的配置,此时dubbo.properties里没有配置,dubbo的配置都在provider的xml文件中配置了 lib文件夹下的依赖
    • 6.1 window中使用start.bat启动,关闭命令窗口关闭服务.


      windows下测试启动命令
      访问控制台查看,Provider项目启动成功了,IP地址是windows上的地址
    • 6.2 linux中使用start.sh启动使用stop.sh关闭.


      上传压缩包到linux
      上传压缩包成功
      解压到/usr/local目录1
      解压到/usr/local目录2
      在Linux里启动provider项目
      provider项目启动成功了,IP地址是linux服务器的地址

    相关文章

      网友评论

          本文标题:Maven打包插件-Assembly

          本文链接:https://www.haomeiwen.com/subject/dtblvctx.html