从前面的部分恢复
第1部分
第2部分
我们在第三部分继续介绍,我们已经有一个父pom,并且已经为我们的war模块定义了pom。 在我们的原始设置中,我们定义了我们的应用程序将包含一个ejb jar形式的服务jar。 这是我们的Enterprise Java Bean,特别是Session Bean。 我们还定义了另一个模块(层),它将托管实体Bean(数据库表示Bean),即所谓的域模型。
定义服务(ejb)模块
在父pom文件夹下,我们像使用war模块那样创建了一个新的子文件夹。 在这个文件夹中,我们创建一个pom.xml文件,其中包含以下内容。该文件夹的名称为sample-services。 pom看起来像这样。 最终,现在就差不多了。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>gr.javapapo</groupId><artifactId>sample-parent</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>sample-services</artifactId><name>sample-services</name> <description>EJB service layer</description><packaging>ejb</packaging><build><finalName>${project.artifactId}</finalName></build><dependencies><dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId></dependency></dependencies></project>
记住,我们已经在父 pom的依赖项管理部分中定义了javaee-api jar的版本,并且在插件管理部分中还定义了一个maven插件,它将处理ejb.jar的特定包装。要求。 它是maven-ejb-plugin。 返回到父pom并搜索以上两个点。 由于在父pom中定义了所有这些元素,因此我们的ejb服务pom看起来非常小。 按照惯例,Maven将负责大部分工作。 Maven ejb插件即将启动,因为我们已定义此模块所需的包装为' ejb '。
我们的项目结构如下所示:
定义实体bean(ejb)模块
在父pom文件夹下,我们创建了一个新的子文件夹,就像之前的ejb模块一样。 我们将其命名为sample-domain。 这是我们将遵循JPA2规范对数据库表示Bean(即所谓的实体Bean)进行编码的模块。
pom看起来很简单。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>gr.javapapo</groupId><artifactId>sample-parent</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>sample-domain</artifactId><packaging>ejb</packaging><name>sample-domain</name><description>JPA entities for our project - domain model</description><build><finalName>${project.artifactId}</finalName></build><dependencies><dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId></dependency></dependencies></project>
打包仍然是ejb,因为它将托管EJB类,即所谓的Entity Beans 。
我们需要打包另一件事,因为该模块将“托管”我们的域对象,所以这是一个名为persistence.xml的XML描述符,它定义了应用程序将要连接的数据源。 在Java EE 7中,此文件已大大简化,我们甚至可以跳过数据源的定义,因为已经有一个默认值。 在这里看看。 从打包的角度来看,我们现在更感兴趣的是,您需要做的是,在文件夹src / main / resources下创建一个名为META-INF的新文件夹,并在其中放置persistence.xml文件,如下图所示。
此时persistence.xml的内容无关紧要(我们将重点关注下一篇文章),您可以在此文章的git分支上查找示例。
有关创建文件夹的说明,如果使用IDE(例如Eclipse或IntelliJ)添加Maven模块,则在创建新模块并定义POM后,IDE会自动创建模块应该具有的标准布局文件夹。 Maven约定。 如果您遵循这些文章,并且使用诸如简单文本编辑器之类的简单工具编写代码,则需要自己创建src / main文件夹结构。
这就是本文的全部内容,我们为应用程序添加了2个以上的模块,但是我们仍然缺少将它们全部打包的模块,这是ear模块。 我们还没有讨论模块的“相互依赖性”,这是我们将要完成的工作,在下一个“耳朵”专用文章中,所有这些都将整合在一起。
这些简单poms的代码可以在bitbucket项目中的post3标签下找到 。
翻译自: https://www.javacodegeeks.com/2014/05/java-ee7-and-maven-project-for-newbies-part-3-defining-the-ejb-services-and-jpa-entities-modules.html