【问题标题】:maven javaee application client pluginmaven javaee 应用程序客户端插件
【发布时间】:2011-09-10 16:08:13
【问题描述】:

我对 Maven 很陌生。

是否有适合构建应用程序客户端jar文件的插件或封装类型?

我想将 application-client.xml 文件添加到 jar 内的 META-INF 文件夹中。

普通的jar包不包含文件。

【问题讨论】:

标签: maven-2 jakarta-ee application-client


【解决方案1】:

您应该只需要使用 jar 包装来定义项目(因为它是默认的,所以您不需要声明它)。 如果您在 src/main/resources/META-INF 文件夹中定义 application-client.xml,它将包含在最终 jar 的 META-INF 文件夹中。


要定义附加信息,您需要如下配置 jar 插件。

<project>
...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <archive>
            <manifest>
              <mainClass>com.mycompany.app.App</mainClass>
              <addClasspath>true</addClasspath>
            </manifest>
            <manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
          </archive>
        </configuration>
      </plugin>
    </plugins>
  </build>
  ...
</project>

查看guide to working with manifests了解完整详情

【讨论】:

  • 效果很好。现在如何将主类和类路径信息添加到清单中?
【解决方案2】:

我对 Maven 中的 JavaEE 支持不是很熟悉,但如果配置正确,ejb 插件似乎也可以生成客户端 jar。看看这个页面:

Maven EJB Plugin - Generating an EJB client

【讨论】:

  • 谢谢。我试过了,但似乎没有用。不包括 application-client.xml。我应该更换包装吗?
  • 这只是创建了第二个工件,其中包含客户端类(例如 EJB 接口)以包含在客户端应用程序中。这些客户端应用程序可以是 WAR 模块或其他应用程序客户端。第二个工件具有“-classes” maven 分类器。
  • OP 可能在谈论 »Java EE 应用程序客户端« - 这是一个带有 main() 的 EJB,由容器在部署时执行。或者不是——这里对客户端的双重使用是令人困惑的。
猜你喜欢
  • 2011-04-16
  • 2018-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多