maven EAR中的多模块依赖关系?

时间:2013-12-02 10:19:15

标签: maven multi-module maven-ear-plugin

我是Maven的新手,我正在将当前的EAR应用程序转换为Maven。这是一个多模块项目(ear,ejb,web,utility)。

某些实用程序模块依赖于其他实用程序模块。我不希望Maven将版本号添加到模块最终JAR中。所以在EAR的POM.XML

我使用<bundleFileName>选项设置最终JAR的名称。问题是生成的MANIFEST.MF模块文件是依赖的 在此模块上仍使用JAR文件名中的版本号。

知道我做错了什么吗?

以下是EAR的pom.xml

的摘录
<jarModule >
  <groupId>${project.parent.groupId}</groupId>
  <artifactId>batch</artifactId>
  <bundleFileName>batch.jar</bundleFileName>
</jarModule >

以下是模块的pom.xml

的摘录
<dependency>
  <groupId>${project.parent.groupId}</groupId>
  <artifactId>batch</artifactId>
  <version>${project.parent.version}</version>
  <type>jar</type>
</dependency>
<build>
<finalName>util</finalName>
<plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                    </manifest>
                </archive>
            </configuration>      
        </plugin>
    </plugins>
</build>

结果util的MANIFEST.MF包含batch-1.0.jar 但我希望它包含如EAR的pom.xml

中提到的batch.jar

1 个答案:

答案 0 :(得分:0)

当您发布此耳朵时,您将使用相同版本部署这些模块吗?

如果是,那么你可以使用它:

例如:项目结构:

-EAR
 pom.xml
 --web-module
   pom.xml
 --ejb-module
   pom.xml     

想象一下,web模块具有ejb模块依赖性,那么你可以在web模块项目中添加这种依赖:

   <dependency>
      <groupId>your.groupId</groupId>
      <artifactId>your.groupId</artifactId>
      <version>${project.version}</version>
   </dependency>

希望它有所帮助。