如何获取maven组件插件来复制工件?

时间:2012-06-20 16:21:25

标签: maven maven-assembly-plugin

我有一个Maven程序集脚本,可以复制资源来构建我们的应用程序。我需要将一些war文件从单独的外部项目复制到输出中的/ webapps目录中。似乎无法找到执行它的神奇命令。

我尝试使用<include com.mygroup:mywarfile>向程序集添加dependencySet。如果我在项目中添加'mywarfile'作为war依赖项,并且具有编译或运行时范围,则此方法有效。不幸的是,我的项目产生了一场战争,maven-war-plugin包含外部mywar文件作为叠加层,我不想要。

如果我将外部战争依赖的范围设置为提供或测试,则程序集将失败并显示警告:

[警告]在此工件包含过滤器中从未触发以下模式:  'com.mygroup:mywarfile'

我想要做的就是将程序集从我的本地仓库复制到装配输出。怎么做而不搞乱项目的其他部分?

2 个答案:

答案 0 :(得分:2)

maven-assembly-plugin不适合复制。复制依赖关系的更好方法是maven-dependency-plugin,它可以复制依赖关系等。如果你谈论部署到Tomcat等,你应该深入研究carg2-maven-plugintomcat-maven-plugin似乎更适合这项任务。

答案 1 :(得分:0)

我没有尝试过这个,但您可以尝试使用exclude overlay maven war plugin配置的... <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.2</version> <configuration> <overlays> <overlay> <groupId>com.example.projects</groupId> <artifactId>warToBeExcluded</artifactId> <excludes> <exclude>*</exclude> </excludes> </overlay> </overlays> </configuration> </plugin> </plugins> </build> ... 功能来排除依赖战争文件的内容,使其不包含在您的war项目中。来自Overlay文档的修改后的代码段

{{1}}