【发布时间】:2012-10-16 22:18:12
【问题描述】:
我正在尝试在 EAR 中构建 EJB。我的 EJB 依赖于 SNAPSHOTS。因此,当我构建 EAR 时,我的结构如下所示:
my-ear-1.0.0-SNAPSHOT.ear
+ META-INF
- application.xml
- MANIFEST.MF
- my-ejb-1.0.0-SNAPSHOT.jar
- third-party-lib-1.0.0-SNAPSHOT.jar
但是,当使用 maven-ejb-plugin 生成其 MANIFEST.MF 时:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ejb-plugin</artifactId>
<version>2.3</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
</archive>
</configuration>
</plugin>
我遇到的问题是,MANIFEST.MF 将 SNAPSHOT 列为它在 Nexus 中的显示方式,而不是 maven-ear-plugin 在构建耳朵时对其命名的方式。
Manifest-Version: 1.0
Build-Jdk: 1.6.0_25
Class-Path: third-party-lib-1.0.0-20121026.140152-21.jar
所以我当然会得到 ClassNotFoundException ,因为 EJB 类路径正在寻找一个不存在的 jar 文件。
基本上我需要知道:
- 如何在没有 -SNAPSHOT 格式的情况下让 maven-ear-plugin 将罐子拉入耳朵?
- 如何让 maven-ejb-plugin 使用 MANIFEST.MF 中的 -SNAPSHOT 格式?
【问题讨论】:
标签: jakarta-ee maven ejb ear manifest.mf