Maven生成jar依赖,然后战争

时间:2013-12-16 08:02:26

标签: java eclipse maven m2e

我正在使用m2e Maven Plugin for Eclipse。我有5个日食项目。一个Web应用程序项目,然后将4个项目作为我的Web应用程序的jar依赖项。

我想知道如何在战争项目中使用“mvn clean install”将jar包装到WAR之前将其打包。

这是我的pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>dispatcher</groupId>
<artifactId>dispatcher</artifactId>
<version>4.0</version>
<packaging>war</packaging>
<build>
    <plugins>
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.3</version>
            <configuration>
                <warSourceDirectory>WebContent</warSourceDirectory>
            </configuration>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>referentiel</groupId>
        <artifactId>referentiel</artifactId>
        <version>4.7</version>
    </dependency>
    <dependency>
        <groupId>mailTemplates</groupId>
        <artifactId>mailTemplates</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>qualityTool</groupId>
        <artifactId>qualityTool</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>tools</groupId>
        <artifactId>tools</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
    ...
    ..
    .
</dependencies>
</project>

提前谢谢。

2 个答案:

答案 0 :(得分:2)

创建一个顶级maven模块(战争和罐子的父)并执行mvn clean install

---pom.xml
   |
   |dispatcher---pom.xml (war)
   |qualityTool----pom.xml (jar)
   |mailTemplates----pom.xml (jar)
   |referentiel----pom.xml (jar)
   |tools----pom.xml (jar)

或使用--also-make命令行选项来创建依赖项

答案 1 :(得分:2)

@Jigar Joshi的回答很好,但我需要一个结构视图,可以帮助你快速理解我们的意思。

予。创建一个顶级maven模块(战争和罐子的父) 你已经拥有了你需要的5个模块。现在创建一个新的Maven项目作为父项,它必须只包含一个pom.xml文件。

父项目pom

 <project...>               
            <groupId>groupId</groupId>
            <artifactId>parent-pom</artifactId>
            <version>1.0-SNAPSHOT</version>
            <packaging>pom</packaging>
        <name>Define parent pom </name>
      <!-- modul -->
  <project>

II。首先将你的jar项目作为modul,最后是war项目。如果你在jar项目中有另一个依赖项,那么你也可以尝试对它们进行排序。

父项目pom

 <modules>
        <module>referentiel</module> <!-- jar -->
        <module>mailTemplates</module> <!-- jar -->
        <module>qualityTool</module> <!-- jar -->
        <module>tools</module> <!-- jar -->
        <module>dispatcher</module> <!-- war-->
    </modules>

III。在所有其他项目中将父引用放入poms

   <parent>
       <groupId>groupId</groupId>
       <artifactId>parent-pom</artifactId>
       <version>1.0-SNAPSHOT</version>
    <parent>

IV。现在,您可以进入新创建的父项目内部并从那里运行

mvn clean install