Maven 入门
来源:互联网 发布:python简明中文教程 编辑:程序博客网 时间:2024/06/06 21:28
1.Maven是做什么的
Maven是一个项目管理和构建自动化的工具。但对于我们编码来说,我们更关心它的项目构建功能。
1.1 Maven的项目结构
src -main –bin 脚本库 –java java源代码文件 –resources 资源库,会自动复制到classes目录里 –filters 资源过滤文件 –assembly 组件的描述配置(如何打包) –config 配置文件 –webapp web应用的目录。WEB-INF、css、js等 -test –java 单元测试java源代码文件,项目的测试类,比如jUint代码 –resources 测试需要用的资源库 –filters 测试资源过滤库 -site Site(一些文档)targetLICENSE.txt Project’s licenseREADME.txt Project’s readme工程根目录下就只有src和target两个目录target是有存放项目构建后的文件和目录,jar包、war包、编译的class文件等。target里的所有内容都是maven构建的时候生成的
1.2 pom.xml
pom.xml文件是Maven的核心
pom意思就是project object model。pom.xml包含了项目构建的信息,包括项目的信息、项目的依赖等。pom.xml文件是可以继承的,大型项目中,子模块的pom.xml一般都会继承于父模块的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"> <modelVersion>4.0.0</modelVersion> <groupId>cn.luxh.app</groupId> <artifactId>my-app</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>my-app</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies></project>
<project> pom文件的顶级节点<modelVersion> object model版本,对Maven2和Maven3来说,只能是4.0.0 <groupId> 项目创建组织的标识符,一般是域名的倒写<artifactId> 定义了项目在所属组织的标识符下的唯一标识,一个组织下可以有多个项目<packaging> 打包的方式,有jar、war、ear等<version> 当前项目的版本,SNAPSHOT,表示是快照版本,在开发中<name> 项目的名称<url> 项目的地址<dependencies> 构建项目依赖的jar<description> 项目的描述
其中由groupId、artifactId和version唯一的确定了一个项目坐标
2. 构建Maven工程
2.1 简单的项目构建
使用Maven命令行构建工程很重要,最简单的就是根据标准模板创建,有时还需根据不同的项目,添加不同的命令。
关于maven项目的生成命令:
create is deprecated in maven 3.0.5 and beyond,在maven3.0.5以上版本舍弃了create,使用generate生成项目
标准创建模板
mvn archetype:create -DgroupId=com.codeline.commons \-DartifactId=codelineCommons
第一次创建时,还需下载对应插件
如第一次构建scala工程。
mvn archetype:generate -DarchetypeGroupId=org.scala-tools.archetypes \-DarchetypeArtifactId=scala-archetype-simple \-DremoteRepositories=http://scala-tools.org/repo-releases \-DgroupId=com.xxxx.bigdata.spark.app \-DartifactId=logs-analyzer \-Dversion=1.0
2.2 构建多模块项目
关于通过maven构建多模块项目参考此篇博客:
http://www.cnblogs.com/xdp-gacl/p/4242221.html
3. Maven资源仓库
3.1 maven仓库收集
<mirror> <id>mirrors.ibiblio.org</id> <name>mirrors.ibiblio.org</name> <url>http://mirrors.ibiblio.org/maven2/</url> <mirrorOf>central</mirrorOf> </mirror> <mirror> <id>nexus-tmatesoft</id> <mirrorOf>central</mirrorOf> <name>Nexus tmatesoft</name> <url>http://maven.tmatesoft.com/content/groups/public/</url> </mirror> <mirror> <id>Central</id> <url>http://repo1.maven.org/maven2</url> <mirrorOf>central</mirrorOf> </mirror> <mirror> <id>internal</id> <mirrorOf>*</mirrorOf> <name>local.</name> <url>http://uk.maven.org/maven2/</url> </mirror>
3. Maven 的生命周期
在Maven2中有了明确的生命周期概念,而且都提供与之对应的命令,使得项目构建更加清晰明了。主要的生命周期阶段:
- validate,验证工程是否正确,所有需要的资源是否可用。
- compile,编译项目的源代码。
- test-compile,编译项目测试代码。
- test,使用已编译的测试代码,测试已编译的源代码。
- package,已发布的格式,如jar,将已编译的源代码打包。
- integration-test,在集成测试可以运行的环境中处理和发布包。
- verify,运行任何检查,验证包是否有效且达到质量标准。
- install,把包安装在本地的repository中,可以被其他工程作为依赖来使用
- deploy,在整合或者发布环境下执行,将最终版本的包拷贝到远程的
- repository,使得其他的开发者或者工程可以共享。
- generate-sources,产生应用需要的任何额外的源代码,如xdoclet。
如果要执行项目编译,那么直接输入:mvn compile即可,对于其他的阶段可以类推。阶段之间是存在依赖关系(dependency)的,如test依赖test-compile。在执行mvn test时,会先运行mvn test-compile,然后才是mvn test。
参考博客:
http://blog.csdn.net/edward0830ly/article/details/8748986
系统总结Maven的博客
7天学会Maven
Maven学习总结
- maven 入门
- maven 入门
- MAVEN 入门
- Maven入门
- maven入门
- maven入门
- Maven 入门
- Maven入门
- maven 入门
- Maven入门
- maven入门
- maven 入门
- maven入门
- Maven入门
- maven入门
- Maven入门
- maven入门
- Maven入门
- 斗地主源码
- 167. Two Sum II
- JDK并发包-(上).md
- Editplus打开关联文件缓慢的问题解决
- windows下常用的cmd命令
- Maven 入门
- Linux系统下编译Boost库,并在Qt Creator中使用Boost库
- 基于热传播的测地距离计算-Siggraph 2013
- java.exe和javaw.exe的区别及使用方法
- C语言:重写strcpy函数,拷贝字符串的内容
- PHP开发环境——UPUPW的下载安装
- 高精度大整数模板(n!为例)
- 总结28
- 我是如何做SEO创业自动赚钱的?