Maven的简单使用

来源:互联网 发布:淘宝几个好评一个心 编辑:程序博客网 时间:2024/05/19 02:39

Maven

Maven是一个基于项目对象模型,即POM;拥有约定优于配置思想的管理工具。

可以通过一小段描述信息(配置文件)来管理项目的构建,报告和文档的软件项目管理工具。

 

Maven的主要功能:

①、项目的构建

创建一个maven project,可以创建一个jarwarpom项目,一般pom项目是一个父类,用于子类管理依赖版本;jarjava项目;warweb项目

②、依赖的管理

Maven很好的一个功能就是项目之间的依赖关系管理,即版本的管理。

 

作为一个项目管理工具,maven管理包含了:

①、一个项目对象模型(POM),工程的根目录下有pom.xml用来管理依赖

②、一组标准集合,一系列的配置

③、一个项目的生命周期:清理、编译、测试、报告、打包、部署

④、一个依赖管理系统只需要配置pom.xml即可管理项目(jarwar

注意:

当第一次配置maven文件确定依赖关系的时候,maven会自动从网上指定的位置下载项目,第一次使用maven需要连接网络。

 

 

简单的使用maven

一、 maven为第三方工具,需要下载:http://maven.apache.org/download.cgi

二、 配置maven的环境变量。需要依赖jdk环境,使用配置在jdk之后。

 

三、 配置环境变量和jdk方式一样,在path中加上%MAVEN_HOME/bin%

四、 测试maven,在cmd中输出maven -v

如图,则配置成功。

 

 

本地仓库:

使用maven开发项目的时候,从网络下载的依赖包会下载在本地的仓库中,以后如果有需要使用的话,会从本地仓库中找;没有在从网上的中央仓库查询。

配置本地仓库,主要设置maven\conf\setting.xml,内容为本地仓库地址

<localRepository>D:\repository\bin</localRepository>

Setting.xml配置文件:

localRepository:配置本地仓库的目录

InteractiveMode:是否需要和用户交互以获得输入。如果Maven需要和用户交互以获得输入,则设置为true,默认为true

Offline:是否需要在离线模式下运行,默认为false

PluginGroups:插件组。默认情况下该列表包含了org.apache.maven.plugins

Proxies:通过代理访问外部库,既可以通过代理去访问私服或其他项目的仓库

Servers:配置服务端的设置,用于安全认证;如私服的配置,账号admin,密码admin123

<server>    <id>releases</id>         <!-- 发布版本 -->    <username>admin</username>    <password>admin123</password>    </server><server>    <id>Snapshots</id>      <!-- 测试版本 --><username>admin</username>    <password>admin123</password>    </server>

 

Mirrors:镜像库。确定使用的仓库,即使用私服的仓库

<mirror>      <id>nexus</id>      <mirrorOf>*</mirrorOf>      <name>Human Readable Name for this Mirror.</name>      <url>http://localhost:8080/nexus/content/groups/public/</url>       <!-- url的地址为:指定的ip下的nexus --></mirror>


Profiles:根据环境参数来调整构建配置的列表,在配置私服的时候需要用上,需要激活才可以生效 

<profile>        <id>nexus</id>        <repositories>            <repository>                 <id>central</id>                <url>http://repo1.maven.org/maven2/</url>                <releases><enabled>true</enabled></releases>                <snapshots><enabled>true</enabled></snapshots>            </repository>    </repositories>    <pluginRepositories>            <pluginRepository>              <id>central</id>               <url>http://repo1.maven.org/maven2/</url>               <releases><enabled>true</enabled></releases>              <snapshots><enabled>true</enabled></snapshots>            </pluginRepository>        </pluginRepositories>    </profile>


ActiveProfiles:手动激活profiles的列表(在activeprofiles的名称需要和profilesid一致)

<activeProfiles>    <activeProfile>nexus</activeProfile>  </activeProfiles>


Maven项目的详细见解:

Pom:(pom.xmlpom.xmlmaven项目的核心文件,它是指示maven如何工作的元数据文件,在pom.xml中进行各版本的依赖管理。

GroupIdgroupid是一个工程的在全局的唯一的标识符,一般地,它就是工程名。groupId有利于使用一个完全的包名,将一个工程从其他有类似名称的工程区别出来。

Artifactartifact是工程将要产生或需要使用的文件,它可以是jar文件,源文件,二进制文件,war文件,pom文件。每个Artifact都是由groupIdartifactid组合的标识符唯一识别。需要被使用(依赖)的Artifact都要放在仓库中,否则maven无法找到它们。

 

Dependency:为了能够build或者运行,在pom.xml中需要使用dependency来依赖管理。

PluginMaven是由插件组织的,它的每一个功能都是由插件提供的。插件提供goal,并根据在POM中找到的元数据去完成工作。主要的Maven插件要是由Java写成的,但它也支持用BeanshellAnt脚本写成的插件。

 <!--<dependencyManagement> 如果在子类中可以有选择性的选择依赖,则要再父类中的依赖用dependencyManagement包含 -->  <dependencies><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.1</version><scope>provided</scope></dependency></dependencies><build><plugins><!-- java编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.2</version><configuration><source>1.7</source><target>1.7</target><encoding>UTF-8</encoding></configuration></plugin><!-- 配置Tomcat插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><!-- http://localhost:8999/demo4 --><port>8888</port><path>/demo1</path></configuration></plugin></plugins></build>

 

Maven的常用命令:

cmd下使用命令

编译:mvn compile  测试:mvn test  清除:mvn clean  打包:mvn package        安装和发布:mvn installmvn deploy(安装和发布都是放在本地仓库)

 

 

Eclipse使用maven

要想在eclipse中使用maven,也需要进行配置。

首先、需要在maven选项下的installations,把maven的包引入。

 

然后、在maven选项下的user setting,把maven包的setting.xml引入,是为了在eclipse中引入本地仓库。

 

最后、跳转到maven视图,在local repository中选择rebuild index,便会去加载在user setting中配置的setting.xml中定义的本地仓库。

需要运行web项目的话,需要运行tomcatXrun,插件为tomcatXX为几。

 

 

仓库的分类(了解即可):

中央仓库

<distributionManagement>  <repository>  <id>releases</id>  <name>Internal Releases</name>       <!-- 在url中的地址需要写出服务器的ip --> <url>http://localhost:8080/nexus-2.7.0-06/content/repositories/releases/</url>  </repository>  <snapshotRepository>  <id>Snapshots</id>  <name>Internal Snapshots</name><url>http://localhost:8080/nexus-2.7.0-06/content/repositories/snapshots/</url>  </snapshotRepository>  </distributionManagement>

Maven内置了远程公用仓库:http://repo1.maven.org/maven2

这个公共仓库是由Maven自己维护的,里面有大量的常用类库,并包含了世界上大部分流行的开源项目构件。

如果在本地仓库去找jar没有找到,就会默认去中央仓库查找

内部中心仓库(私服)

由公司内部构建的,一般是由一个小团队使用的。

私服只是为了在内部使用的。它既可以作为公司内部构件协作和存档,也可以作为公用类库镜像缓存,减少在外部访问和下载的频率。

①、要把nexus.war的项目放在tomcatwebapps

②、要把syno的项目放在用户的home目录下

除了在setting.xml中定义了私服外,在pom.xml也需要定义

 

 

依赖调节和规则:

 

 

第一原则:路径近者优先原则

在一层一层的往下依赖中,较前的声明比较优先

第二原则:第一声明者优先原则

在一层的往下依赖中,当路径相同时,同时出现两个相同的依赖,则首先定义的依赖比较优先

 

 

0 0
原创粉丝点击