​maven-assembly-plugin插件怎么使用

本文讲解"​maven-assembly-plugin插件如何使用",希望能够解决相关问题。

maven-assembly-plugin

Java项目中有一种类型的主应用,是需要独立部署在后台启动的,比如socket服务程序,比如定时调度程序,比如dubbo服务程序,这些程序理论上只需要执行一个简单的java命令即可;稍微复杂一些的,我们可以规范一下自己的主应用结构,定义配置文件夹和依赖库文件夹,再准备启动的批处理脚本sh或bat文件即可。使用maven-assembly-plugin就可以达到这种效果。

示例用法

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <appendAssemblyId>false</appendAssemblyId>
        <descriptors>
            <descriptor>target/classes/package.xml</descriptor>
        </descriptors>
    </configuration>
    <executions>
        <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions></plugin>

附package.xml

<assemblyxmlns="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">
    <id>package</id>
    <formats>
        <format>tar.gz</format>
    </formats>
    <includeBaseDirectory>true</includeBaseDirectory>
    <fileSets>
        <fileSet>
            <directory>src/main/bin</directory>
            <includes>
                <include>*.sh</include>
                <include>*.bat</include>
            </includes>
            <filtered>true</filtered>
            <outputDirectory></outputDirectory>
            <fileMode>0755</fileMode>
        </fileSet>
        <fileSet>
            <directory>${basedir}/src/main/config</directory>
            <includes>
                <include>*.properties</include>
                <include>log4j.xml</include>
            </includes>
            <outputDirectory>config</outputDirectory>
            <filtered>true</filtered>
            <fileMode>0644</fileMode>
        </fileSet>
        <fileSet>
            <directory>${basedir}/src/main/config</directory>
            <includes>
                <include>log4j.dtd</include>
            </includes>
            <outputDirectory>config</outputDirectory>
            <fileMode>0644</fileMode>
        </fileSet>
    </fileSets>
    <dependencySets>
        <dependencySet>
            <outputDirectory>lib</outputDirectory>
            <scope>runtime</scope>
            <fileMode>0644</fileMode>
        </dependencySet>
    </dependencySets></assembly>

生成的Java应用结构图

​maven-assembly-plugin插件怎么使用

关于 "​maven-assembly-plugin插件如何使用" 就介绍到此。希望多多支持编程宝库

​maven-shade-plugin插件怎么使用:本文讲解"​maven-shade-plugin插件如何使用",希望能够解决相关问题。maven-shade-plugin有时候,我们需要将所有配置文件和依赖库文件全部放在一个jar包中, ...