• Maven将依赖包、jar/war包及配置文件输出到指定目录


    使用Maven插件将依赖包 jar包 war包及配置文件输出到指定目录

    写在前面

    ​ 最近遇到一个朋友遇到一个项目需要将 maven 的依赖包和配置文件分开打包然后用脚本执行程序。这样的好处在于可以随时修改配置文件内容及查看 jar 包。如果将所有打成一个 jar 包就会有个问题(例如:修改数据库连接位置需要重新打包这样就失去了使用配置文件的有优点)。

    本文利用Maven插件将依赖包、jar/war包及配置文件输出到指定目录

    1. 使用 maven-dependency-plugin 插件将依赖包导出到指定文件夹

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <!--${project.build.directory} class的输出目录不做设置的话默认代表项目根目录的target目录;
                                也可以使用“自定义文件夹/自定义文件夹 例如:a/b”,也可以使用绝对路径如:“D:	est” -->
                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
                            <excludeTransitive>false</excludeTransitive>
                            <stripVersion>false</stripVersion>
                            <includeScope>runtime</includeScope>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    

    以下步骤将会省略掉build plugins节点

    2. 使用 maven-war-plugin 插件将war打包到指定路径

    打Jar包时,与此类似

    <plugin>
    	<groupId>org.apache.maven.plugins</groupId>
    	<artifactId>maven-war-plugin</artifactId>
    	<configuration>
    		<outputDirectory>d:	est</outputDirectory>
    		<!--表示将所有的webapps项目下的文件拷贝到相应路径-->
    		<webappDirectory>d:	est</webappDirectory>
    	</configuration>
    </plugin>
    

    3. 使用 maven-jar-plugin 插件移除配置文件将其不打包进 jar 包中,并可以将打包后的 jar 包输出到指定路径

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <!-- 指定打包的jar包输出路径-->
            <outputDirectory>
                ${project.build.directory}/lib
            </outputDirectory>   
            <!--不打入jar包的文件类型或者路径-->
            <excludes>
                <exclude>**/*.properties</exclude>
                <exclude>**/*.xml</exclude>
                <exclude>**/*.yml</exclude>
                <exclude>static/**</exclude>
                <exclude>templates/**</exclude>
            </excludes>
        </configuration>
    </plugin>
    

    4. 使用 maven-resources-plugin 插件将需要复制的文件复制到指定路径(例:将配置文件提取到指定路径)

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
            <execution>
                <id>copy-resources</id>
                <phase>package</phase>
                <goals>
                    <goal>copy-resources</goal>
                </goals>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <!--打成jar包后复制到的路径-->
                    <outputDirectory>
                        ${project.build.directory}/conf
                    </outputDirectory>  
                    <resources>
                        <resource>
                            <!--项目中的路径-->
                            <directory>src/main/resources/</directory>
                        </resource>
                    </resources>
                </configuration>
            </execution>
            <!--可配置多个提取复制路径只需要 “<id>”名字不一样即可-->
            <execution>
                <id>copy-bulid</id>
                <phase>package</phase>
                <goals>
                    <goal>copy-resources</goal>
                </goals>
                <configuration>
                    <encoding>UTF-8</encoding>
                    <outputDirectory>
                        ${project.build.directory}/bin
                    </outputDirectory>   
                    <resources>
                        <resource>
                            <directory>build/</directory>
                        </resource>
                    </resources>
                </configuration>
            </execution>
        </executions>
    </plugin>
    

    使用 maven 命令执行打包命令

    mvn clean package
    

    转自:https://www.cnblogs.com/willvi624/p/9456239.html

  • 相关阅读:
    Python 发送邮件
    python3 根据时间获取本月一号和月末日期
    docker搭建MediaWiki
    linux下僵尸进程的发现与处理
    rootkit后门检查工具RKHunter
    CentOS7安装Node_exporter(二进制)
    用JS获取地址栏参数的方法(超级简单)
    php读取目录及子目录下所有文件名的方法
    css input[type=file] 样式美化,input上传按钮美化
    APACHE REWRITE ? 匹配问号的写法
  • 原文地址:https://www.cnblogs.com/selier/p/9510326.html
Copyright © 2020-2023  润新知