为了账号安全,请及时绑定邮箱和手机立即绑定

使用Maven复制文件的最佳实践

使用Maven复制文件的最佳实践

森栏 2019-08-02 13:01:08
使用Maven复制文件的最佳实践我有配置文件和各种文档,我希望使用Maven 2将这些文件从dev环境复制到dev-server目录。奇怪的是,Maven似乎并不擅长这项工作。其中一些备选方案:简单使用a复制Maven中的任务<copy file="src/main/resources/config.properties" tofile="${project.server.config}/config.properties"/>使用Ant插件执行复制蚂蚁的。构造一个类型的工件拉链,与POM的“主要”工件(通常为类型)一起使用。罐,然后拆包从存储库到目标目录的工件。Maven-资源插件,如下所述。Maven组件插件-但这似乎需要大量的手动定义,当我想做简单和“常规”的事情时。本页甚至展示了如何构建一个插件来进行复制!Maven-上传插件,如下所述。maven-依赖-插件带着复制,见下文。所有这些似乎都是不必要的,没有必要:Maven应该擅长于完成这些标准任务,而无需大惊小怪。有什么建议吗?
查看完整描述

3 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞


不要回避安特恩插件。仅仅因为有些人倾向于认为Ant和Maven是对立的,他们就不是。如果需要执行一些不可避免的一次性定制,请使用复制任务:

<project>
  [...]  <build>
    <plugins>
      [...]      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <phase>deploy</phase>
            <configuration>
              <tasks>

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

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

在回答这个问题时,我把重点放在你要求的细节上。如何复制文件?这个问题和变量名给我带来了一个更大的问题,比如:“有更好的方法来处理服务器配置吗?”使用Maven作为构建系统来生成可部署的工件,然后在单独的模块或其他地方执行这些定制。如果您共享更多的构建环境,可能会有更好的方法-有插件可以提供许多服务器。您能附加一个在服务器根目录中解压缩的程序集吗?你用的是哪台服务器?

再说一次,我肯定还有更好的办法。




查看完整回答
反对 回复 2019-08-03
?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

<build>
    <plugins>
        ...        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.3</version>
        </plugin>
    </plugins>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include> **/*.properties</include>
            </includes>
        </resource>
    </resources>
    ...</build>




查看完整回答
反对 回复 2019-08-03
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

为了复制文件使用:

        <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>3.1.0</version>
            <executions>
                <execution>
                    <id>copy-resource-one</id>
                    <phase>install</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>

                    <configuration>
                        <outputDirectory>${basedir}/destination-folder</outputDirectory>
                        <resources>
                            <resource>
                                <directory>/source-folder</directory>
                                <includes>
                                    <include>file.jar</include>
                                </includes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
           </executions>
        </plugin>

为了复制带有子文件夹的文件夹,请使用下一个配置:

           <configuration>
              <outputDirectory>${basedir}/target-folder</outputDirectory>
              <resources>          
                <resource>
                  <directory>/source-folder</directory>
                  <filtering>true</filtering>
                </resource>
              </resources>              
            </configuration>




查看完整回答
反对 回复 2019-08-03
  • 3 回答
  • 0 关注
  • 1426 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信