我有一个Maven程序集脚本,可以复制资源来构建我们的应用程序。我需要将一些war文件从单独的外部项目复制到输出中的/ webapps目录中。似乎无法找到执行它的神奇命令。
我尝试使用<include com.mygroup:mywarfile>
向程序集添加dependencySet。如果我在项目中添加'mywarfile'作为war依赖项,并且具有编译或运行时范围,则此方法有效。不幸的是,我的项目产生了一场战争,maven-war-plugin包含外部mywar文件作为叠加层,我不想要。
如果我将外部战争依赖的范围设置为提供或测试,则程序集将失败并显示警告:
[警告]在此工件包含过滤器中从未触发以下模式: 'com.mygroup:mywarfile'
我想要做的就是将程序集从我的本地仓库复制到装配输出。怎么做而不搞乱项目的其他部分?
答案 0 :(得分:2)
maven-assembly-plugin不适合复制。复制依赖关系的更好方法是maven-dependency-plugin,它可以复制依赖关系等。如果你谈论部署到Tomcat等,你应该深入研究carg2-maven-plugin或tomcat-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}}