我有配置文件和各种文档,我想使用 Maven2 从开发环境复制到 dev-server 目录。奇怪的是,Maven 似乎不擅长这项任务。
一些选项:
<copy file="src/main/resources/config.properties" tofile=”${project.server.config}/config.properties”/>
<copy file="src/main/resources/config.properties"
tofile=”${project.server.config}/config.properties”/>
使用 Ant 插件从 Ant 执行 复制 。
构造一个 zip 类型的工件,以及通常是 jar 类型的 POM 的“主要”工件,然后将该工件从存储库 解压缩 到目标目录中。
maven-resources 插件,如下所述。
Maven Assembly 插件——但这似乎需要大量手动定义,当我想简单而“传统地”做事时。
这个页面甚至展示了如何构建一个插件来进行复制!
maven-upload 插件,如下所述。
maven-dependency-plugin 和 copy ,如下所述。
所有这些似乎都是不必要的临时性:Maven 应该擅长于完成这些标准任务而无需大惊小怪。
有什么建议吗?
不要回避 Antrun 插件。只是因为有些人倾向于认为 Ant 和 Maven 是对立的,但事实并非如此。如果您需要执行一些不可避免的一次性定制,请使用复制任务:
<project> [...] <build> <plugins> [...] <plugin> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <phase>deploy</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>
在回答这个问题时,我专注于你所问的细节。如何复制文件?这个问题和变量名让我想到了一个更大的问题,比如:“有没有更好的方法来处理服务器配置?” 使用 Maven 作为构建系统来生成可部署的工件,然后在单独的模块中或完全在其他地方执行这些自定义。如果您共享更多的构建环境,可能会有更好的方法 - 有插件来配置许多服务器。你能附加一个在服务器根目录中解压的程序集吗?你用的是什么服务器?
同样,我确信有更好的方法。