zoukankan      html  css  js  c++  java
  • maven打包zip包含bin下启动脚本

    在idea上测试有效:

    pom.xml打包

        <build>
            <sourceDirectory>src/main/scala</sourceDirectory>
            <testSourceDirectory>src/test/scala</testSourceDirectory>
    
            <resources>
                <resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*.properties</include>
                        <include>**/*.xml</include>
                    </includes>
                    <!-- 排除外置的配置文件(运行时注释上,使IDE能读到配置文件;打包时放开注释让配置文件外置,方便修改)可以不配置,maven-jar-plugin下面已配置 -->
                    <!--<excludes>
                        <exclude>config.properties</exclude>
                    </excludes>-->
                </resource>
                <!-- 配置文件外置的资源(存放到conf目录,也是classpath路径,下面会配置)-->
                <!--<resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>config.properties</include>
                    </includes>
                    <targetPath>${project.build.directory}/conf</targetPath>
                </resource>-->
            </resources>
    
            <plugins>
                <!--scala编译打包插件-->
                <plugin>
                    <groupId>net.alchim31.maven</groupId>
                    <artifactId>scala-maven-plugin</artifactId>
                    <version>3.2.1</version>
                    <executions>
                        <execution>
                            <id>scala-compile-first</id>
                            <phase>process-resources</phase>
                            <goals>
                                <goal>add-source</goal>
                                <goal>compile</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
    
                <!--java编译打包插件-->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.1</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                        <encoding>UTF-8</encoding>
                    </configuration>
                    <executions>
                        <execution>
                            <phase>compile</phase>
                            <goals>
                                <goal>compile</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
    
                <!--
                    ③打成一个zip包,发布项目的时候,将zip包copy到服务器上,直接unzip xxx.zip,里面包含要运行到的jar以及依赖的lib,还有配置的config文件,即可直接启动服务
                -->
    
                <!--The configuration of maven-jar-plugin-->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>2.4</version>
                    <!--The configuration of the plugin-->
                    <configuration>
                        <!-- 不打包资源文件(配置文件和依赖包分开) -->
                        <excludes>
                            <exclude>*.properties</exclude>
                            <exclude>*.xml</exclude>
                            <exclude>*.txt</exclude>
                        </excludes>
                        <!--Configuration of the archiver-->
                        <archive>
                            <!--生成的jar中,不要包含pom.xml和pom.properties这两个文件-->
                            <addMavenDescriptor>false</addMavenDescriptor>
                            <!--Manifest specific configuration-->
                            <manifest>
                                <!--是否把第三方jar放到manifest的classpath中-->
                                <addClasspath>true</addClasspath>
                                <!--生成的manifest中classpath的前缀,因为要把第三方jar放到lib目录下,所以classpath的前缀是lib/-->
                                <classpathPrefix>lib/</classpathPrefix>
                                <!--应用的main class-->
                                <mainClass>com.swordfall.restserver.base.WebServer</mainClass>
                            </manifest>
                            <!-- 给清单文件添加键值对,增加classpath路径,这里将conf目录也设置为classpath路径 -->
                            <manifestEntries>
                                <Class-Path>conf/</Class-Path>
                            </manifestEntries>
                        </archive>
                        <!--过滤掉不希望包含在jar中的文件-->
                        <!-- <excludes>
                             <exclude>${project.basedir}/xml/*</exclude>
                         </excludes>-->
                    </configuration>
                </plugin>
    
                <!--The configuration of maven-assembly-plugin-->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>2.4</version>
                    <!--The configuration of the plugin-->
                    <configuration>
                        <!--Specifies the configuration file of the assembly plugin-->
                        <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>

     assembly.xml打包zip设置

    assembly.xml
    
    <assembly>
        <id>bin</id>
        <includeBaseDirectory>false</includeBaseDirectory>
        <!-- 最终打包成一个用于发布的zip文件 -->
        <formats>
            <format>zip</format>
        </formats>
    
        <!-- Adds dependencies to zip package under lib directory -->
        <dependencySets>
            <dependencySet>
                <!-- 不使用项目的artifact,第三方jar不要解压,打包进zip文件的lib目录 -->
                <useProjectArtifact>false</useProjectArtifact>
                <outputDirectory>lib</outputDirectory>
                <unpack>false</unpack>
            </dependencySet>
        </dependencySets>
    
        <fileSets>
            <!-- 把项目相关的说明文件,打包进zip文件的根目录 -->
            <!--<fileSet>
                <directory>${project.basedir}</directory>
                <outputDirectory>/</outputDirectory>
            </fileSet>-->
    
            <!-- 把项目的配置文件,打包进zip文件的config目录 -->
            <!--<fileSet>-->
            <!--<directory>${project.basedir}/src/main/resources</directory>-->
            <!--<outputDirectory>/conf</outputDirectory>-->
            <!--<includes>-->
            <!--<include>*.xml</include>-->
            <!--<include>*.properties</include>-->
            <!--</includes>-->
            <!--</fileSet>-->
    
            <!-- 把项目自己编译出来的jar文件,打包进zip文件的根目录 -->
            <fileSet>
                <directory>${project.build.directory}</directory>
                <outputDirectory></outputDirectory>
                <includes>
                    <include>*.jar</include>
                </includes>
            </fileSet>
    
            <!-- 把项目的脚本文件目录(src/main/scripts)中的启动脚本,打包进zip文件的根目录 -->
            <fileSet>
                <directory>${project.basedir}/src/main/bin</directory>
                <outputDirectory>bin</outputDirectory>
                <includes>
                    <include>*.sh</include>
                </includes>
            </fileSet>
        </fileSets>
    </assembly>
  • 相关阅读:
    虚拟机镜像下载
    The method getTextContent() is undefined for the type Node
    sun.misc.BASE64Encoder找不到jar包的解决方法
    eclipce项目中的js报错解决
    eclipce导入项目导入不进去
    myeclipse新安装好后需要的设置
    mysql软件下载
    Git Bash 命令行方式 提交源码到GitHub
    使用plsql developer 创建用户
    鼠标滑过TAB选项卡切换demo 可拓展
  • 原文地址:https://www.cnblogs.com/LIAOBO/p/15471400.html
Copyright © 2011-2022 走看看