5.2. 查看 Maven 项目结构
The /path/to/output/mavenized/<APPLICATION_NAME>/ 目录包括以下内容:
-
root
POM文件。这是顶层目录中的pom.xml文件。 -
A BOM 文件。这是以
-bom结尾的目录中的POM文件。 -
一个或多个应用程序
POM文件。每个模块的POM文件在以存档命名的目录中。
示例 jee-example-app-1.0.0.ear 应用是包含 WAR 和多个 JAR 的 EAR 存档。每个工件都创建一个单独的目录。以下是为此应用程序创建的 Maven 项目结构。
/path/to/output/mavenized/jee-example-app/
jee-example-app-bom/pom.xml
jee-example-app-ear/pom.xml
jee-example-services2-jar/pom.xml
jee-example-services-jar/pom.xml
jee-example-web-war/pom.xml
pom.xml检查每个生成的文件,并根据您的项目自定义。要了解更多有关 Maven POM 文件的信息,请参阅 Apache Maven 文档中的 POM 部分介绍。
root POM 文件
jee-example-app-1.0.0.ear 应用程序的 root POM 文件可在 /path/to/output/mavenized/jee-example-app/pom.xml 中找到。此文件标识了所有项目模块的目录。
以下模块列在示例 jee-example-app-1.0.0.ear 应用程序的 root POM 中。
<modules> <module>jee-example-app-bom</module> <module>jee-example-services2-jar</module> <module>jee-example-services-jar</module> <module>jee-example-web-war</module> <module>jee-example-app-ear</module> </modules>
如有必要,请务必重新排序模块列表,以便按照项目的适当构建顺序列出这些模块。
root POM 也被配置为使用 Red Hat JBoss Enterprise Application Platform Maven 存储库下载项目依赖项。
BOM 文件
在目录中生成的 Bill of Materials (BOM) 文件以 -bom 结尾。对于示例应用程序 jee-example-app-1.0.0.ear,可在 /path/to/output/mavenized/jee-example-app/jee-example-app/jee-example-app-bom/pom/pom.xml 中找到 BOM 文件。此 BOM 的目的是,项目使用的第三方依赖项的版本可以在一个位置定义。有关使用 BOM 的更多信息,请参阅 Apache Maven 文档中的 依赖关系机制简介 部分。
以下依赖项列在 jee-example-app-1.0.0.ear 应用程序的 BOM 中
<dependencyManagement>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.6</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.5</version>
</dependency>
</dependencies>
</dependencyManagement>应用程序 POM 文件
每个可以 mavenized 的应用程序模块都有一个单独的目录,其中包含其 POM 文件。目录名称包含存档的名称,以 -jar、-war 或 -ear 后缀(根据归档类型)结束。
每个应用程序 POM 文件都会列出该模块的依赖项,包括:
- 第三方库
- Java EE API
- 应用程序子模块
例如,jee-example-app-1.0.0.ear EAR、/path/to/output/mavenized/jee-example-app/jee-example-app-ear/pom.xml 的 POM 文件,列出下列依赖项。
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.6</version>
</dependency>
<dependency>
<groupId>org.jboss.seam</groupId>
<artifactId>jee-example-web-war</artifactId>
<version>1.0</version>
<type>war</type>
</dependency>
<dependency>
<groupId>org.jboss.seam</groupId>
<artifactId>jee-example-services-jar</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.jboss.seam</groupId>
<artifactId>jee-example-services2-jar</artifactId>
<version>1.0</version>
</dependency>
</dependencies>