1 什么是maven:
大家都认为maven是一个构建工具,是一个ant工具的替代,只适用于基于java语言的工程,但是在maven哲学当中(http://maven.apache.org/background/philosophy-of-maven.html) 他并不这么认为。
"Maven is about the application of patterns in order to achieve an infrastructure which displays the characteristics of visibility, reusability, maintainability, and comprehensibility",总而言之他是一个关于模式的应用。让开发人员之间在最短时间内,知道整个项目的开发状态。
2 maven的目的?
a 构建并提供统一的构建系统
b 提供工程质量信息
c 提供部署引导
d 透明迁移到新的特性
3 关键词
pom(project object model)文件,以xml文件的形式来表示项目的资源,源码,测试代码,依赖(jars),位于项目的根目录下
C 当需要对一个基于java语言的工程进行配置,来使用maven的时候,需要在项目的根目录下面写一个pom文件,这个文件大致是这样:
如果你的工程如果包含多个模块,每个子模块还可以写自己模块的pom,这样工程的pom呈现出一个继承关系,子pom文件的设置可以覆盖父pom文件的设置,只需要在子pom文件里指定新的设置即可。
大家都认为maven是一个构建工具,是一个ant工具的替代,只适用于基于java语言的工程,但是在maven哲学当中(http://maven.apache.org/background/philosophy-of-maven.html) 他并不这么认为。
"Maven is about the application of patterns in order to achieve an infrastructure which displays the characteristics of visibility, reusability, maintainability, and comprehensibility",总而言之他是一个关于模式的应用。让开发人员之间在最短时间内,知道整个项目的开发状态。
2 maven的目的?
a 构建并提供统一的构建系统
b 提供工程质量信息
c 提供部署引导
d 透明迁移到新的特性
3 关键词
pom(project object model)文件,以xml文件的形式来表示项目的资源,源码,测试代码,依赖(jars),位于项目的根目录下
4 IDEA 中maven实战指南
A IDEA当中内置Maven插件,所有,无需我们在系统上单独安装,省了不少事,如果是在linux/unix系统上如何安装,请移步至:点击打开链接
B 需要对maven进行配置配置,需要在~/.m2/ 下自己写一个settings.xml文件,在文件中进行配置操作,这个也可以让IDEA帮助生成 ,这个文件可以指定的内容可以看下面的基本配置元素概览
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<servers/>
<mirrors/>
<proxies/>
<profiles/>
<activeProfiles/>
</settings>
C 当需要对一个基于java语言的工程进行配置,来使用maven的时候,需要在项目的根目录下面写一个pom文件,这个文件大致是这样:
<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”>
<modelVersion>4.0.0</modelVersion>
<groupId>com.jenkov</groupId>
<artifactId>java-web-crawler</artifactId>
<version>1.0.0</version>
</project>
如果你的工程如果包含多个模块,每个子模块还可以写自己模块的pom,这样工程的pom呈现出一个继承关系,子pom文件的设置可以覆盖父pom文件的设置,只需要在子pom文件里指定新的设置即可。
其中 :
*groupId”属性是一个组织或者项目(比如开源项目)的唯一ID,不一定非要使用Java的包名
*artifactId*属性包含你正在构建的项目的名称, group ID目录下的子目录名
*versionId包含项目的版本号