gpt4 book ai didi

jakarta-ee - 如何正确使用 SNAPSHOTS 依赖项与 EAR 和 EJB

转载 作者:行者123 更新时间:2023-12-01 08:34:37 27 4
gpt4 key购买 nike

我正在尝试在 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 文件。

基本上我需要知道:
  • 如何让 maven-ear-plugin 在没有 -SNAPSHOT 格式的情况下将 jar 拉入耳朵?
  • 如何让 maven-ejb-plugin 在 MANIFEST.MF 中使用 -SNAPSHOT 格式?
  • 最佳答案

    我通过查看位于 Maven Archiver - Handling Snapshots 的 maven 归档文档找到了我的问题的解决方案。 .

    我只需要配置我的 maven-ejb-plugin 以便它不使用“唯一版本”:

            <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-ejb-plugin</artifactId>
    <version>2.3</version>
    <configuration>
    <archive>
    <manifest>
    <addClasspath>true</addClasspath>
    <useUniqueVersions>false</useUniqueVersions>
    </manifest>
    </archive>
    </configuration>
    </plugin>

    下次我猜 RTFM 会更近:)

    关于jakarta-ee - 如何正确使用 SNAPSHOTS 依赖项与 EAR 和 EJB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13090487/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com