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
/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>
<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>
<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>
<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>