【maven】4、Maven Guide
来源:互联网 发布:mac office软件下载 编辑:程序博客网 时间:2024/06/10 00:06
本篇主要是对Maven项目结构介绍、POM文件常用内容介绍及日常开发中使用的技术点。
本文参考Maven官网Maven Getting Started Guide
http://maven.apache.org/guides/getting-started/index.html#What_is_a_SNAPSHOT_version
上一章,我们尝试了Maven命令创建项目、打Jar包、执行Jar包。首先我们先在看看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>com.mycompany.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>
重点介绍一下使用第三方依赖包,在日常的项目开发中我们用到很多第三方jar包,在Ant我们需要自己讲jar包下载拷贝到项目中,容易产生jar冲突,版本不一致等问题,不便于管理。现在有Maven,会自动下载所需要的依赖包,依赖包之间版本管理。
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency>
可以在http://mvnrepository.com/中查询所需要的jar包,将依赖包信息复制到dependencies中。
Maven是如何下载依赖包?
我们在pom.xml中配置了dependency,那么Maven是如何下载这些依赖包?
在我们安装Maven时,要在默认路径${user.home}/.m2配置settings.xml(settings.xml具体配置及元素后面会有介绍),默认下载路径为
或者可以自己配置,现在国内比较好用的是阿里云
http://maven.aliyun.com/nexus/content/groups/public
下载的依赖包存放在${user.home}/.m2/repository
Maven plugins
Maven本质上是一个插件框架,它的核心并不是执行任何具体的构建任务,所有的这些任务都是交给插件来完成,例如编译源代码是由maven-compiler-plugin完成的。进一步说,每个任务对应了一个插件目标(goal),每个插件会有一个或者多个目标,例如maven-compiler-plugin的compile目标用来编译位于src/main/java/目录下的主源码,testCompile目标用来编译位于src/test/java/目录下的测试源码。
用户可以通过两种方式调用Maven插件目标。第一种方式是将插件目标与生命周期阶段(lifecycle phase)绑定,这样用户在命令行只是输入生命周期阶段而已,例如Maven默认将maven-compiler-plugin的compile目标与 compile生命周期阶段绑定,因此命令mvn compile实际上是先定位到compile这一生命周期阶段,然后再根据绑定关系调用maven-compiler-plugin的compile目标。第二种方式是直接在命令行指定要执行的插件目标,例如mvn archetype:generate 就表示调用maven-archetype-plugin的generate目标,这种带冒号的调用方式与生命周期无关。
所有Maven提供很多插件已供大家使用,添加插件的方法是在pom.xml添加<build>。以下是添加maven-compiler-plugin插件。
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> </plugins></build>
介绍到这里,项目可以引入需要的第三方依赖包、插件等。再介绍常用的Maven命令来满足项目编译、测试编译、打包等。
还有一些整合命令
创建一个简单的Java工程
mvn archetype:create -DgroupId=com.mycompany.example -DartifactId=Example
创建一个java的web工程
mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=com.mycompany.app -DartifactId=my-webapp
安装指定文件到本地仓库
mvn install:install-file -DgroupId=<groupId> -DartifactId=<artifactId> -Dversion=1.0.0 -Dpackaging=jar -Dfile=<myfile.jar>
SHAPSHOT version
<project xmlns="http://maven.apache.org/POM/4.0.0" ... <groupId>...</groupId> <artifactId>my-app</artifactId> ... <version>1.0-SNAPSHOT</version> <name>Maven Quick Start Archetype</name> ...
项目版本可以分为开发版本和稳定版本,开发版本使用SNAPSHOT,稳定版本使用release表示。
SNAPSHOT版本格式:x.y-SNAPSHOT 。当前版本为1.0-SNAPSHOT,按照Maven规则x.(y+1)-SNAPSHOT,版本升级后为1.1-SNAPSHOT。
现有SNAPSHOT版本后又release版本。
创建Document
mvn archetype:generate \ -DarchetypeGroupId=org.apache.maven.archetypes \ -DarchetypeArtifactId=maven-archetype-site \ -DgroupId=com.mycompany.app \ -DartifactId=my-app-site
本篇主要介绍了Maven pom.xml文件基本结构使用、如何引入第三方依赖、如何加入插件、一些常用命令、如何创建项目文档,旨在快速用Maven完成日常的开发。
日常开发中项目服务器部署环境不一样需要出不同的包,这时就要考虑如何不改变代码情况下生成不同生产环境所需的war包,这将在下一章介绍。
- 【maven】4、Maven Guide
- Maven Getting Started Guide
- [Maven.Definitive.Guide]读书笔记
- Maven Jetty Plugin Configuration Guide
- Sonatype OSS Maven Repository Usage Guide
- Maven
- Maven
- Maven
- maven
- Maven
- Maven
- maven
- maven
- maven
- maven
- Maven
- maven .
- Maven
- C++拷贝构造函数与浅拷贝,深拷贝
- AsyncTask源码分析
- Subversion 回退历史版本
- java中file的一些用法:文件复制,lis方法和listfiles方法等
- Python从阿里云Oss拉数据写入Hive表并进行相关处理
- 【maven】4、Maven Guide
- iOS路由跳转(三)之JKRouter基础教程1
- 进程学习笔记(未完待续)
- 【ngMiracle】Angular 中的通信方式
- ASP.NET访问sql数据库(课堂学习部分)
- xgboost
- 我的程序员之路(英语的学习)
- javaWed_03:js基础语法
- nexus 5 刷机到android 6.0 系统