zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    中文版CorelDRAW X8实战视频教程
    21天学通Java6(第5版)
    SAS高级统计分析教程(第2版)
    Access2007开发指南(修订版)
    Visual C++开发入行真功夫
    21天学编程系列:21天学通Java(第4版)
    102. Binary Tree Level Order Traversal
    78. Subsets
    79. Word Search
    46. Permutations
  • 原文地址:https://www.cnblogs.com/selier/p/9510326.html
Copyright © 2011-2022 走看看