2

我有一个 Maven 汇编脚本,它复制资源来构建我们的应用程序。我需要将一些战争文件从单独的外部项目复制到输出中的 /webapps 目录中。似乎找不到执行此操作的魔术命令。

我尝试使用<include com.mygroup:mywarfile>. 如果我在项目中添加“mywarfile”作为战争依赖项,并且具有编译或运行时的范围,这将起作用。不幸的是,我的项目产生了一场战争,而 maven-war-plugin 包含外部 mywarfile 作为覆盖,这是我不想要的。

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

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

我要做的就是让程序集将一个工件从我的本地存储库复制到程序集输出。如何在不弄乱项目其他部分的情况下做到这一点?

4

2 回答 2

2

The maven-assembly-plugin is not intended for copying. The better way to copy dependencies is the maven-dependency-plugin which can copy dependencies etc. If you a talking about deployment into Tomcat etc. than you should take a deeper look into carg2-maven-plugin or the tomcat-maven-plugin which seemed to be more appropriate for that task.

于 2012-06-20T16:44:48.360 回答
0

我还没有尝试过,但是您可以尝试使用配置的exclude功能将依赖的war文件的内容排除在您的war项目中。覆盖文档的修改片段,overlaymaven 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>
...
于 2012-06-21T06:18:48.200 回答