我正在学习如何将maven用于我的独立java应用程序,但我不明白如何从/ src / main / resources到/ taget目录的所有目录的递归副本。
我尝试使用antrun和资源插件,但资源被复制到/ target / classes而不是/ target。
这里有什么问题?
<build>
<pluginManagement><plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>process-resources</phase>
<configuration>
<tasks>
<copy todir="${basedir}/target">
<fileset dir="${basedir}/src/main/resources" includes="**/*" />
</copy>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin> </pluginManagement>
</build>
感谢您的帮助。
编辑: 我会复制到/目标目录,如“bin”,“logs”,“conf”,所以我可以测试应用程序。并且,使用另一个maven任务,将所有内容(jar和bin / conf / tmp dirs)打包到zip / tar.gz文件中。
答案 0 :(得分:5)
<plugins ... />
代替<pluginManagement ... />
。答案 1 :(得分:1)
我认为你是以错误的方式使用maven。
Normall您不需要将资源“复制”到目标。它已由maven自动完成。
如果您有一些测试所需的额外资源,可以添加
<build>
<testResources>
<testResource>
<directory>${basedir}/src/test/anotherKindOfResourceDir</directory>
</testResource>
</testResources>
<build>
而且,正如lexicore所说,你不应该使用pluginManagement。 “pluginManagement”就像“dependencyManagement”一样,在项目真正使用该插件/具有该依赖性时提供“模板”。这意味着,添加pluginManagement / dependencyManagement不会触发任何插件/不会向您的项目添加任何依赖。
答案 2 :(得分:0)
您可以使用 copy todir
使用 maven-antrun-plugin
<tasks>
<mkdir dir="${basedir}/target/folder"/>
<copy todir="${basedir}/target/folder">
<fileset dir="${basedir}/src/folder" includes="**/*" />
</copy>
</tasks>