Maven:无法将资源复制到远程目录

时间:2019-01-27 13:54:21

标签: java maven maven-antrun-plugin

我正在使用:

  • openjdk版本“ 11.0.1” 2018-10-16
  • Apache Maven 3.6.0 建立我的项目。

期望从我要编译的服务器到要复制资源文件的服务器复制3个资源文件。预期方式:

  • 将context.xml复制到 /online/sand/pps/apache-tomcat-9.0.8/webapps/pps/META-INF来自本地 target / classes / env / $ {current_env} _context.xml
  • 将application.properties复制到/online/sand/pps/apache-tomcat-9.0.8/webapps/pps/WEB-INF/classes from local target / classes / env / $ {current_env} _application.properties
  • >
  • 从本地target / classes / env / $ {current_env} _promote_servers.properties
  • 将promote_servers.properties复制到/online/sand/pps/apache-tomcat-9.0.8/webapps/pps/WEB-INF/classes >

因此,我在pom.xml中将配置文件设置为:

<profile>
    <id>dev</id>
    <activation/>
    <properties>
        <INSTALL_MACHINE_LIST>dc1uoappptl01.patamoc-us.com</INSTALL_MACHINE_LIST>
        <COPY_MODE>sftp</COPY_MODE>
        <FTP_USERNAME>theusr</FTP_USERNAME>
        <FTP_PASSWORD>pswd</FTP_PASSWORD>
        <project_lib>/online/sand/pps/apache-tomcat-9.0.8/webapps</project_lib>
    </properties>
</profile>

我曾经使用过复制资源:

<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
            <phase>install</phase>
            <configuration>
                <target>
                    <copy file="${project.build.directory}/classes/env/${current_env}_context.xml"
                          tofile="${project_lib}/pps/META-INF/context.xml"
                          overwrite="true"/>
                    <copy file="${project.build.directory}/classes/env/${current_env}_application.properties"
                          tofile="${project_lib}/pps/WEB-INF/classes/application.properties"
                          overwrite="true"/>
                    <copy file="${project.build.directory}/classes/env/${current_env}_promote_servers.properties"
                          tofile="${project_lib}/pps/WEB-INF/classes/promote_servers.properties"
                          overwrite="true"/>
                </target>

            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>

我的.war文件被stfp定位到正确的位置。但是,资源文件不是。我已经检查了目录权限是否在应该复制文件的远程目录中。 maven安装的日志文件显示资源已复制到上述目录,安装成功。

关于我所缺少的任何想法吗?我应该为资源复制部分使用其他插件吗?

1 个答案:

答案 0 :(得分:0)

我的第一个猜测是,复制文件的生命周期阶段为时已晚(或紧随实际资源的sftp之后),但为了证明您还应该发布复制sftp的目标。

您可以尝试简单地更改

<executions>
        <execution>
            <phase>install</phase>

<executions>
        <execution>
            <phase>package</phase>

所以它处于早期阶段...参见https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html