项目Github地址:https://github.com/zxuqian/Learning-Java-EE-2016
由于Eclipse在Mac下的表现并不好,严重影响效率,所以在添加JPA模块之前,先教大家如何把项目迁移到IntelliJ IDEA下。IntelliJ是一个非常强大的Java IDE,提供流畅的操作界面和智能的项目编译和运行管理,所谓intelligent。因为项目是按Maven的结构构造,所以即使换掉IDE也不用对项目做发动,只是需要删除一些Eclipse专用的文件而已。所以如果你用Windows或者想继续使用Eclipse的话,可以跳过本节。
另外由于在迁移之前,新的项目已经开发一半,所以会看到几个新项目,稍后会对其进行介绍。
迁移到IntelliJ
打开IntelliJ,在首页中选择 Import Project。
选择 Import project from external model 然后选择Maven 并点击 next.
选择 search for project recursively, 因为我们的项目是模块化,pom.xml在子文件夹下,所以我们需要递归查找子目录。再勾选 import Maven projects automatically。点击 next.
勾选搜索出来的项目: com.zxuqian:notebookRoot:0.0.1-SNAPSHOT, 此为所有Maven模块的根模块,用来统一管理依赖。稍后详细介绍。
选择 JDK 并点击 next。
给项目命名并选择项目文件存储目录,这里保持默认。点击Finish。
现在进入到IntelliJ主界面,会发现项目下存在Eclipse相关配置文件: .settings, build, .classpath, .project。这些可直接安全删除。
优化项目结构
Maven是一个强大的依赖管理和项目构建工具,并且pom.xml文件可以继承,以方便管理依赖的版本和定义通用的属性。
首先,创建一个新的maven模块,给定group id为com.zxuqian, artifact id为 notebookRoot, 版本为:0.0.1-SNAPSHOT。 此为其他所有模块的根模块,所以在此模块执行 maven clean 或 install 为所有子模块执行相同的操作。Pom.xml文件如下所示:
<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>
<groupId>com.zxuqian</groupId>
<artifactId>notebookRoot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.wildfly.bom</groupId>
<artifactId>wildfly-javaee7</artifactId>
<scope>import</scope>
<type>pom</type>
<version>10.1.0.Final</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
</dependencies>
<modules>
<module>../notebook</module>
<module>../notebookDomain</module>
<module>../notebookEAR</module>
</modules>
</project>
<packaging>
此项目为pom形式,只用来提供pom.xml文件供子模块继承。
<dependencyManagement>
使用wildfly bom 来管理wildfly的依赖库。Wildfly bom也是一个pom类型的项目,其中定义了wildfly所有的依赖库。import scope 是说此pom继承自wildfly bom。这样做可以避免在每个模块的pom.xml中定义版本号,以免引起混乱。
<modules>
标签引用其他子模块,运行maven的目标也会在这些子模块中同时运行 notebookDomain 和notebookEAR 模块会在下面创建。
更新JSF模块
由于更新了项目结构,上次创建的JSF模块需要做一些改动,新的pom.xml文件:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=