美文网首页
使用 Maven 插件自动将打好的包复制到指定目录

使用 Maven 插件自动将打好的包复制到指定目录

作者: Hsinwong | 来源:发表于2019-04-17 14:38 被阅读0次

    需求

    Maven 默认打好的 Jar 或 War 包放在项目的 target 目录下。现需要在 Maven 的 dockerfile-maven-plugin 插件的上下文目录 docker-context 下使用这个包,即配置 Maven 插件,让 Maven 在 package 阶段完成时,自动将包文件复制到 docker-context 目录下。

    实现

    借助 maven-antrun-plugin 插件实现 clean 阶段自动删除,package 阶段自动复制的功能:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <!-- version 从父 POM 继承 -->
        <!-- <version>1.8</version> -->
        <executions>
            <execution>
                <!-- 保证 id 唯一即可 -->
                <id>delete</id>
                <!-- 指定在 Maven 的 clean 阶段执行 -->
                <phase>clean</phase>
                <configuration>
                    <target>
                        <!-- 删除复制的包 http://ant.apache.org/manual-1.9.x/Tasks/delete.html -->
                        <delete file="docker-context/app.${project.packaging}"/>
                    </target>
                </configuration>
                <goals>
                    <!-- 执行上述 target 标签配置的命令 -->
                    <goal>run</goal>
                </goals>
            </execution>
            <execution>
                <id>copy</id>
                <!-- 指定在 Maven 的 package 阶段执行 -->
                <phase>package</phase>
                <configuration>
                    <target>
                        <!-- 复制生成的包到指定目录 http://ant.apache.org/manual-1.9.x/Tasks/copy.html -->
                        <copy file="target/${project.build.finalName}.${project.packaging}" tofile="docker-context/app.${project.packaging}"/>
                    </target>
                </configuration>
                <goals>
                    <goal>run</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
    

    相关文章

      网友评论

          本文标题:使用 Maven 插件自动将打好的包复制到指定目录

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