1

我是 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

4

1 回答 1

0

当你发布这个耳朵的时候,你会用相同的版本部署这些模块吗?

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

例如:项目结构:

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

假设 web-module 有 ejb-module 依赖,那么你可以在 web-module 项目中添加这个依赖:

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

希望能帮助到你。

于 2013-12-02T11:14:55.357 回答