📖maven管理JAVA工程依赖pom.xml文件

发布: 2017-03-17
热度: 56
趋势: 56
权重: 0
🎯

maven是专门用于构建和管理Java相关项目的管理工具,提供了项目对象模型(POM)文件的新概念来管理项目的构建相关性和文档,其中pom.xml文件描述了maven项目的基本信息。

maven 简介

maven 是一个用于项目管理的综合工具。

  1. 提供了开发人员构建一个完整的生命周期框架。
  2. 可以自动完成项目的基础工具建设。
  3. 应对多个开发团队环境时,可以设置按标准在非常短的时间里完成配置工作。
  4. 让开发人员的工作更轻松,同时创建报表,检查,构建和测试自动化设置。
  5. 最强大的功能就是能够自动下载项目依赖库,这也是最实用的地方。
  6. 是专门用于构建和管理 Java 相关项目的管理工具。

maven 是意第绪语,依地语(犹太人使用的国际语),表示专家的意思。

用 maven 管理 Java 项目,你就是专家了,哈哈哈!

pom.xml

POM 代表项目对象模型,是 maven 中工作的基本单位,是一个 xml 文件,始终保存在项目根目录中的 pom.xml 文件。

建立一个 maven 项目,maven 会检查你的 pom.xml 文件,以确定哪些依赖下载。

首先,maven 将从本地资源库获得 maven 的本地资源库依赖资源。

如果没有找到,会从默认的 maven 中央存储库查找下载。

因此,pom.xml 是配置项目依赖关系的重要文件。

实例解析

取用一个单项目 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/maven-v4_0_0.xsd">
<!-- 指定当前POM模型的版本,对于maven2,maven3只能是4.0.0 -->
<modelVersion>4.0.0</modelVersion>
<!-- 项目编号,独一无二的。可以理解为父级package --> 
<groupId>com.mebugs</groupId>
<!-- 项目名称,与项目编号组成唯一的项目标识 -->
<artifactId>mebugsWeb</artifactId>
<!-- 项目的版本 -->
<version>1.0</version>
<!-- 项目产生的构件类型,例如jar、war,插件可以创建他们自己的构件类型 -->
<packaging>war</packaging> 
<!-- 项目名称,用来声明一个对用户而言比较友好的项目名称,文档使用 --> 
<name>Mebugs Maven Webapp</name> 
<!-- 项目主页的URL,maven产生的文档用。非必须 -->
<url>http://maven.apache.org</url>
<!-- 项目的详细描述,文档用。非必须 -->
<description>A maven project for mebugs</description>
<!-- 常用的版本号统一设置 -->
<properties>
	<!-- 定义spring的版本 -->
	<spring.version>4.3.10.RELEASE</spring.version>
	<!-- 定义jackson的版本 -->
	<jackson.version>2.9.3</jackson.version>
	<!-- 项目编码方式 -->
	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	<!-- jdk版本 -->
	<jdk.version>1.8</jdk.version>
</properties> 
<!-- 依赖列表 -->
<dependencies>
	<!-- 基础的依赖配置,版本号自行填写 -->
	<dependency>
		<groupId>log4j</groupId>
		<artifactId>log4j</artifactId>
		<version>1.2.17</version>
		<!-- 依赖类型,可不写,默认类型是jar -->
		<type>jar</type>
		<!-- 依赖范围,可不写 -->
		<scope>compile</scope>
	</dependency>
	<!-- 依赖配置,取用配置的版本 -->
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-beans</artifactId>
		<!-- 取用上方提供的spring版本 -->
		<version>${spring.version}</version>
	</dependency>
	<!-- 依赖传递配置 -->
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-core</artifactId>
		<version>${spring.version}</version>
		<!-- 依赖传递,用于解决版本冲突 -->
		<exclusions>
			<exclusion>
				<groupId>commons-logging</groupId>
				<artifactId>commons-logging</artifactId>
			</exclusion>
		</exclusions>
	</dependency>
	<dependency>
		<groupId>commons-logging</groupId>
		<artifactId>commons-logging</artifactId>
		<version>1.2</version>
	</dependency>
	<!-- 外在依赖与取用 -->
	<dependency>
		<groupId>com.mebugsapi</groupId>
		<artifactId>mebugsApi</artifactId>
		<version>1.0</version>
		<scope>system</scope>
		<!-- 比如用于自身提供的业务jar包 -->
		<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/mebugsApi.jar</systemPath>
	</dependency>
</dependencies>
<!-- 构建项目所需要的信息 -->
<build>
	<!-- 产生的构件的文件名,默认值是${artifactId}-${version} -->
	<finalName>mebugsWeb</finalName>
	<!-- 子项目可以引用的默认插件信息 -->
	<pluginManagement>
		<plugins> 
			<!-- 添加插件,编译插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.0</version>
				<configuration>
					<source>${jdk.version}</source>
					<target>${jdk.version}</target>
					<showWarnings>false</showWarnings>
				</configuration>
			</plugin>
		</plugins>
	</pluginManagement>
	<!-- 描述项目相关的所有资源路径列表,例如:属性文件,这些资源被包含在最终的打包文件里。--> 
	<resources>
		<resource>
			<directory>src/main/java</directory> 
			<!-- 包含 -->
			<includes>
				<include>**/*.xml</include>
			</includes>
		</resource>
		<resource>
			<directory>src/main/resources/</directory>
			<includes>
				<include>**</include> 
			</includes>
		</resource>
	</resources>
</build>
</project>

补充说明

其他想要依赖的包,对应的 dependency,在这个网站找。

http://mvnrepository.com/

可以再网站中一键生成 dependency 节点配置项。

如下图中所示:

SC-148-mavpomx1.jpg

当前文章暂无讨论,留下脚印吧!
大纲
  • maven 简介
  • pom.xml
    • 实例解析
  • 补充说明
提交成功,请等待审核通过后全面展示!

发表评论

昵称
邮箱
链接
签名
评论

温馨提示:系统将通过浏览器临时记忆您曾经填写的个人信息且支持修改,评论提交后仅自己可见,内容需要经过审核后方可全面展示。

选择头像