[关闭]
@pastqing 2015-06-30T08:28:41.000000Z 字数 2561 阅读 2586

Maven学习笔记(二)

java maven


一、如何用Maven构建多模块项目

1.父POM

所有的Maven pom文件都继承自一个父POM, 如果没有指定父pom, 则该pom文件继承自根POM。pom文件的集成关系如下图所示:
此处输入图片的描述
可以让一个pom文件显式地继承另一个pom文件。这样,可以通过修改公共父pom文件的设置来修改所有子pom文件的设置。这里我们使用parent标签来定义父pom。下面我们具体搭建一个多模块Mavne项目

2.构建项目目录结构

我们创建一个maven-web项目, 名字叫EducationCloud, 接下来我们在项目目录下创建几个文件夹用来划分我们的模块。它们分别是Education-parent(父模块), Education-core(业务), Education-entity(实体), Education-web(web服务)
此处输入图片的描述
目录的划分可以根据需要进行, 我的划分如上

3.修改pom文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <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">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.EducationCloud</groupId>
  5. <artifactId>EducationCloud</artifactId>
  6. <version>1.0-SNAPSHOT</version>
  7. <packaging>pom</packaging>
  8. <modules>
  9. <module>Education-parent</module>
  10. <module>Education-core</module>
  11. <module>Education-entity</module>
  12. <module>Education-web</module>
  13. </modules>
  14. <name>EducationCloud</name>
  15. </project>

这里我们说下packaging标签:最常见的就是打包为jar, war了。任何一个Maven项目都需要定义pom文件中的packaging元素, 如果不声明该元素, 则默认打包为jar, 如果定义值为war那么就打包为war包。如果值为pom,那么什么包都不生成(通常用于父模块),如果你想了解packaging后面发生了什么, 点这里。

官方文档在这里Multi-Modules

  1. <parent>
  2. <groupId>com.EducationCloud</groupId>
  3. <artifactId>EducationCloud-parent</artifactId>
  4. <version>1.0-SNAPSHOT</version>
  5. <relativePath></relativePath>
  6. </parent>

groupId, aritfactId, version是常规表示父pom位置信息的元素, relativePath是表示父pom位置的相对路径, 默认为../pom.xml, 这里需要注意的是groupId, aritfactId, version必须与父pom文件中的对应起来

  1. <pluginManagement>
  2. <plugins>
  3. <!-- complile插件的配置 -->
  4. <plugin>
  5. <groupId>org.apache.maven.plugins</groupId>
  6. <artifactId>maven-complier-plugin</artifactId>
  7. <version>3.3</version>
  8. <configuration>
  9. <source>1.7</source>
  10. <target>1.7</target>
  11. <encoding>UTF-8</encoding>
  12. </configuration>
  13. <plugin>
  14. </plugins>
  15. </pluginManagement>

上面我们添加了maven编译插件的配置,用jdk1.7编译, 保存后我们可以在各个子模块的Effective pom中看到相应的修改。

  1. <properties>
  2. <jdkVersion>1.7</jdkVersion>
  3. <servletVersion>3.1.0</servletVersion>
  4. <mysqlVersion>5.1.34</mysqlVersion>
  5. <junitVersion>4.12</junitVersion>
  6. <defaultEncoding>UTF-8</defaultEncoding>
  7. </properties>

引用时用${jdkVersion}的形式引用即可。

注,以上操作均可在IDE中操作, 更加方便简单。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注