Java EE7和Maven工程入门(3)

目录

  1. 一个简单Maven工程的结构
  2. 建立一个简单的WAR工程
  3. 定义ejb services模块和jpa实体模块

本文开始讲述第三部分。我们已经有了一个父pom并且已经为我们的war模块定义好了pom。在原来的设置中,我们已经定义了应用程序将要包含一个以ejb jar包的形式的service jar包。我们的企业级java bean,尤其是会话bean就放那里。我们还定义了另一个主管实体bean(数据库展现bean)的模块(层),即所谓的域模型。

定义service(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的依赖管理部分(dependency management)定义过了javaee-api jar包的版本,在插件管理部分(plugin management)还需要一个maven插件来专门负责打包我们ejb.jar。它就是maven-ejb-plugin。可以回到父pom中,查找以上两点。由于这些元素都定义在了父pom里,所以我们的ejb service 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类,即所谓的实体bean

由于这个模块将“主管”我们的域对象,所以还有另外一个我们需要一起打包的东西,一个叫做persistence.xml的xml描述符。它定义了我们的应用将连接的数据源。在Java EE7里面,这个文件已经简化了许多,我们甚至可以略过数据源的定义,因为已经有一个默认的数据源。参考这里。从包装的角度来看,现在你需要做的就是在src/main/resources文件夹下新建一个名为META-INF的文件夹,并在里面放置persistence.xml文件,如下图所示:

persistence.xml的内容在这点上不相关(我们将在下个帖子中关注这部分内容),你可以在这个帖子的git分支找到一个例子。

关于目录创建需要注意:如果你使用一个诸如Eclipse或者Intellij这样的IDE来添加maven模块,一旦你创建了一个新的模块并定义一个POM,IDE会根据Maven约定自动创建你的模块该有的标准目录结构。如果你按照这些帖子来并且你使用一个更简单的工具,例如一个简单的文本编辑器来写的你的代码,那么你就必须自己创建src/main目录结构。

以上就是这个帖子的所有内容了,我们已经为我们的应用添加了至少两个模块,但是我们仍然缺少一个打包所有东西的ear模块。我们还没有涉及到模块的“内部依赖”,这些是我们将要做的。在后面的“ear”专题里,所有的模块都将集中起来。

在post3标签下bitbucket工程里可以找到这些简单的pom代码。

原文链接: javacodegeeks 翻译: ImportNew.com - micah
译文链接: http://www.importnew.com/11741.html
[ 转载请保留原文出处、译者和译文链接。]

关于作者: micah

(新浪微博:@_Micah

查看micah的更多文章 >>



相关文章

发表评论

Comment form

(*) 表示必填项

还没有评论。

跳到底部
返回顶部