今天在做Docke镜像的时候想要把编译出来 的Jar包自动复制到指定目录下,网络找到了 maven-antrun-plugin 这个插件,在这个过程中遇到了几个问题,现记录下来,记录时候 2021-12-13。

完整代码如下:

 <!--docker需要的jar的复制操作-->
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>3.0.0</version>
                <executions>
                    <execution>
                        <id>compile</id>
                        <phase>package</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <target>
                                <copy todir = "src/main/docker"
                                      file = "target/${project.artifactId}-${project.version}.${project.packaging}"></copy>
                            </target>
                        </configuration>

                    </execution>
                </executions>
            </plugin>

因为maven-antrun-plugin插件的版本在不全的更新,所以一些命令也不停的更新,

第一,我添加maven-antrun-plugin之后,一直提示提示错误,说找不到这个插件,通过排查,发现是添加了aliyun 镜像造成的,把下面这段注解了就可以找到 maven-antrun-plugin插件了。

 

 第二, 由于maven-antrun-plugin,之前的任务是写在<tasks>节点下,但在3.0.0版本之后,tasks 已经失效,需要切换到<target>中,3.0.0以下版本,还是可以使用tasks,具体请参考 Apache Maven AntRun Plugin – antrun:run

<target>PlexusConfiguration1.5The XML for the Ant target. You can add anything you can add between <target> and </target> in a build.xml.
<tasks>PlexusConfiguration-Deprecated. Use target instead. For version 3.0.0, this parameter is only defined to break the build if you use it!

所发一定要看官网文档。

pom.xml中配置maven-antrun-plugin 的模板 如下,

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>3.0.0</version>
        <executions>
          <execution>
            <phase> <!-- a lifecycle phase --> </phase>
            <configuration>
              <target>

                <!--
                  Place any Ant task here. You can add anything
                  you can add between <target> and </target> in a
                  build.xml.
                -->

              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

支持的命令,参考官方连接:

Apache Maven AntRun Plugin – Usage

在这个过程中还有一个疑问没有解决,我的IDE 提示goal 里面设置run 的时候显示红色,也就是有错误,但不影响使用,官网也是说这个goal 里面只能设置run,The maven-antrun-plugin has only one goal, run. 有哪位小伙伴能帮忙解释一下,我这里为什么会显示为error?

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐