Maven构建一个WAR文件,但首先构建一个JAR文件

时间:2011-04-20 15:15:28

标签: eclipse maven war pom.xml

我在Eclipse中有两个Maven项目,都有自己的POM。

项目A创建一个JAR文件。

项目B创建一个WAR文件。

当我对项目B运行“package”命令时,我希望它还包装项目A,然后将生成的JAR文件复制到项目B中的任意位置。

我已经在maven-war-plugin中使用webResources值尝试(并成功)了副本,如下所示:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-war-plugin</artifactId>
  <version>2.0.2</version>
  <configuration>
    <webResources> 
      <resource> 
        <directory>../ProjectA/target</directory> 
        <targetPath>.</targetPath>
        <includes>
          <include>ProjectA*.jar</include>
        </includes>
        <excludes>
          <exclude>*shaded*.jar</exclude>
        </excludes>
      </resource> 
   </webResources> 

但是如何让项目B的POM进行项目A的构建?

我尝试的另一种方法是使项目A成为项目B的依赖项,因此它将被导入到WAR的WEB-INF / lib目录中,然后将其移动到其他位置。但这似乎有点混乱。

任何帮助,非常感谢。

1 个答案:

答案 0 :(得分:6)

为此,您应该创建一个具有这样结构的多模块构建。

  root
   +-- pom.xml
   +-- ProjectA
          +-- pom.xml
   +-- ProjectB
          +-- pom.xml

通过上述结构,您可以非常优雅地处理您的问题。阅读有关multi-module builds等的内容。 一件事是使用更新版本的maven-war-plugin,因为当前版本是2.1.1而不是2.0.X。