Maven的简单使用
来源:互联网 发布:淘宝几个好评一个心 编辑:程序博客网 时间:2024/05/19 02:39
Maven:
Maven是一个基于项目对象模型,即POM;拥有约定优于配置思想的管理工具。
可以通过一小段描述信息(配置文件)来管理项目的构建,报告和文档的软件项目管理工具。
Maven的主要功能:
①、项目的构建
创建一个maven project,可以创建一个jar、war和pom项目,一般pom项目是一个父类,用于子类管理依赖版本;jar是java项目;war是web项目
②、依赖的管理
Maven很好的一个功能就是项目之间的依赖关系管理,即版本的管理。
作为一个项目管理工具,maven管理包含了:
①、一个项目对象模型(POM),工程的根目录下有pom.xml用来管理依赖
②、一组标准集合,一系列的配置
③、一个项目的生命周期:清理、编译、测试、报告、打包、部署
④、一个依赖管理系统只需要配置pom.xml即可管理项目(jar、war)
注意:
当第一次配置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的名称需要和profiles的id一致)
<activeProfiles> <activeProfile>nexus</activeProfile> </activeProfiles>
Maven项目的详细见解:
Pom:(pom.xml)pom.xml是maven项目的核心文件,它是指示maven如何工作的元数据文件,在pom.xml中进行各版本的依赖管理。
GroupId:groupid是一个工程的在全局的唯一的标识符,一般地,它就是工程名。groupId有利于使用一个完全的包名,将一个工程从其他有类似名称的工程区别出来。
Artifact:artifact是工程将要产生或需要使用的文件,它可以是jar文件,源文件,二进制文件,war文件,pom文件。每个Artifact都是由groupId和artifactid组合的标识符唯一识别。需要被使用(依赖)的Artifact都要放在仓库中,否则maven无法找到它们。
Dependency:为了能够build或者运行,在pom.xml中需要使用dependency来依赖管理。
Plugin:Maven是由插件组织的,它的每一个功能都是由插件提供的。插件提供goal,并根据在POM中找到的元数据去完成工作。主要的Maven插件要是由Java写成的,但它也支持用Beanshell或Ant脚本写成的插件。
<!--<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 install、 mvn 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项目的话,需要运行tomcatX:run,插件为tomcatX,X为几。
仓库的分类(了解即可):
中央仓库:
<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的项目放在tomcat的webapps下
②、要把syno的项目放在用户的home目录下
除了在setting.xml中定义了私服外,在pom.xml也需要定义
依赖调节和规则:
第一原则:路径近者优先原则
在一层一层的往下依赖中,较前的声明比较优先
第二原则:第一声明者优先原则
在一层的往下依赖中,当路径相同时,同时出现两个相同的依赖,则首先定义的依赖比较优先
- 【Maven】Maven的简单使用
- maven的简单使用
- maven的简单使用
- Maven的简单使用
- Maven的简单使用
- maven简单的使用
- Maven的简单使用
- Maven的简单使用
- Maven的简单使用
- Maven的ActiveMQ+spring的简单使用
- maven的配置以及简单使用
- maven的简单使用<个人笔记>
- maven的环境构建和简单使用
- Maven的安装和简单使用
- maven的认识和简单使用
- maven简单使用简记
- maven简单入门使用
- Maven 讲解:简单使用
- Javascript面向对象编程(二):
- C语言中,在计算机存储本质下的赋值
- Javascript面向对象编程(三):非构造函数的继承
- 经验_硬件_RL电路_传函
- Mac Osx 下 学习 lisp
- Maven的简单使用
- Hibernate4自学入门(六)—— 常用对象和方法
- Talk about Jquery Touch
- 《MySql 必知必会》16-20
- MaterialDesign--SnackBar
- 使用IntelliJ IDEA 13搭建Android集成开发环境(图文教程)
- FloydWarshall 算法包含BellmanFord 和Dijkstra算法求单元最短路SSSP,可以有负权,有圈
- 设计模式之建造者模式-----高上
- Android 去除ActionBar: