【问题标题】:Maven war project with jars带有罐子的 Maven 战争项目
【发布时间】:2016-10-19 21:42:02
【问题描述】:

嘿,我正在编写一个包含其他 2 个 maven 项目的项目:

  1. JPA 与 EJB 项目(DAO 层)打包.jar

  2. Rest Services 项目打包 .war

我找到了使用 eclipse 设置依赖关系的帮助。在我的战争项目中,我添加了带有 DAO 的本地项目。编译、构建(两个 pom.xml 上的 mvn clean install)成功了。但我无法将它部署在 Wildfly 服务器上。我从我的 jar 包中获得了类的 NoClassDef。

另一方面,我看到很多将 DAO 打包在 jar 中的项目。但是有 EJB3 注释。他们会在该配置中与 JEE Server 一起使用吗?(他们不需要 web.xml 所以也许它是正确的)。我必须为我的依赖 DAO 项目设置哪个范围?如果我有 NoClassDef 错误,似乎在运行时没有编译的类,或者这个包中有 2 个或更多类的定义。我已经尝试了一些配置,但我无法得到解决方案。

有人能写出设置 maven 项目的最佳实践吗?例如

  1. DAO 层类型:jar

  2. Rest Services 层类型:war,依赖:DAO { scope: default, type:jar}

【问题讨论】:

  • 您使用的是哪些 EJB3 注释?

标签: maven jakarta-ee scope dependencies wildfly


【解决方案1】:

我认为一个好的做法是定义一个项目父级(Parent POM),它必须定义所涉及的模块:

<modules>
    <module>application-dao</module>
    <module>application-rest</module>
</modules>

并将您的应用程序“.jar”定义为依赖项

<dependency>
    <groupId>com.test</groupId>
    <artifactId>application-dao</artifactId>
    <version>${project.version}</version>
    <scope>compile</scope>
</dependency>

建议您可以添加额外的管理层,然后您会

  • 应用道
  • 应用核心
  • 应用程序休息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-22
    • 2014-06-07
    • 2014-02-01
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    相关资源
    最近更新 更多