maven是专门用于构建和管理Java相关项目的管理工具,提供了项目对象模型(POM)文件的新概念来管理项目的构建相关性和文档,其中pom.xml文件描述了maven项目的基本信息。
maven 是一个用于项目管理的综合工具。
maven 是意第绪语,依地语(犹太人使用的国际语),表示专家的意思。
用 maven 管理 Java 项目,你就是专家了,哈哈哈!
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,在这个网站找。
可以再网站中一键生成 dependency 节点配置项。
如下图中所示:
温馨提示:系统将通过浏览器临时记忆您曾经填写的个人信息且支持修改,评论提交后仅自己可见,内容需要经过审核后方可全面展示。