Maven学习笔记

摘要:
默认地址是:~/.m2/repositorywindows环境下地址就是C:Usershuligong.m2epository修改D:Apachemaven-3.1.1confsettings.xml中的D:/maven/repo三、创建Maven项目D:pub˃mvnarchetype:create-DgroupId=com.jeedev.myproj-DartifactId=myproj-DpackageName=com.jeedev.myproj-Dversion=1.0新的方式:D:pub˃mvnarchetype:generate-DgroupId=com.jeedev.myproj-DartifactId=myproj-DarchetypeArtifactId=maven-archetype-quickstart-DinteractiveMode=false查看生成的pom.xml4.0.0com.jeedev.myprojmyproj1.0jarmyprojhttp://maven.apache.orgUTF-8junitjunit3.8.1test说明:project:pom.xml文件中的顶层元素;modelVersion:指明POM使用的对象模型的版本。groupId:指明创建项目的组织或者小组的唯一标识。比如,org.apache.maven.plugins是所有Maven插件项目指定的groupId。典型的产品名称使用这个格式:-.。Maven帮助你管理版本,可以经常看到SNAPSHOT这个版本,表明项目处于开发阶段。
Maven学习笔记
目录
一、环境配置
二、修改仓库位置
三、创建Maven项目
四、编译项目代码
五、导入到eclipse中
六、包的更新与下载
七、创建一个Web项目
八.使用Jetty
九、创建一个代理仓库
十、maven项目在eclipse中调试--tomcat
十一、maven项目在eclipse中调试--jetty
十二、创建多模块项目
十三、完整可用的pom.xml
十四、使用SpringSide4
一、环境配置
1.下载http://maven.apache.org/download.cgi并解压到电脑D:Apachemaven-3.1.1
2.配置环境变量
a.创建用户变量:
变量名:M2_HOME
变量值:D:Apachemaven-3.1.1
b.然后在Path中加入;%M2_HOME%in;
3.验证是否成功安装
mvn -v
二、修改仓库位置
仓库用于存放我们项目所依赖的所有jar包。不修改使用默认地址也可以。
默认地址是:~/.m2/repository windows环境下地址就是 C:Usershuligong.m2 epository
修改D:Apachemaven-3.1.1confsettings.xml中的<localRepository>D:/maven/repo</localRepository>
三、创建Maven项目
D:pub>mvn archetype:create -DgroupId=com.jeedev.myproj -DartifactId=myproj -DpackageName=com.jeedev .myproj -Dversion=1.0
新的方式(mvn的archetype插件提供一种从现有项目生成archetype的功能):
D:pub>mvn archetype:generate -DgroupId=com.jeedev.myproj -DartifactId=myproj -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
查看生成的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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.jeedev.myproj</groupId>
<artifactId>myproj</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<name>myproj</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
说明:
project:pom.xml文件中的顶层元素;
modelVersion:指明POM使用的对象模型的版本。这个值很少改动。
groupId:指明创建项目的组织或者小组的唯一标识。GroupId是项目的关键标识,典型的,此标识以组织的完全限定名来定义。比如,org.apache.maven.plugins是所有Maven插件项目指定的groupId。
artifactId:指明此项目产生的主要产品的基本名称。项目的主要产品通常为一个JAR文件。第二,象源代码包通常使用artifactId作为最后名称的一部分。典型的产品名称使用这个格式: <artifactId>- <version>. <extension>(比如:myapp-1.0.jar)。
version:项目产品的版本号。Maven帮助你管理版本,可以经常看到SNAPSHOT这个版本,表明项目处于开发阶段。
name:项目的显示名称,通常用于maven产生的文档中。
url:指定项目站点,通常用于maven产生的文档中。
description:描述此项目,通常用于maven产生的文档中。
对于一个项目中只有下面的一部分是是我们需要关注的:
<groupId>com.jeedev.myproj</groupId>
<artifactId>myproj</artifactId>
<version>1.0</version>
四、编译项目代码
进入项目目录执行
D:pubmyproj>mvn clean compile
clean 告诉maven清理输入出目录target/,compile告诉maven编译项目主代码。
将项目结构转成eclipse支持项目结构,使之可以导入到eclipse中:
D:pubmyproj>mvn eclipse:eclipse
常用命令
mvn clean compile -U package -Dmaven.test.skip=true
部署第三方jar到本地仓库
mvn install:install-file -Dfile=D:/mywork/thirdparty-libs/jeedev-commons-1.0.0.jar -DgroupId=org.jeedevframework.commons -DartifactId=jeedevframework-commons -Dversion=1.0.0 -Dpackaging=jar
部署第三方jar到远程仓库
mvn deploy:deploy-file -Dfile=D:/mywork/thirdparty-libs/wechat4j-1.3.1.jar -DgroupId=org.sword.wechat4j -DartifactId=sword-wechat4j -Dversion=1.3.1 -Dpackaging=jar -Durl=http://maven.domain.cn/nexus/content/repositories/thirdparty/ -DrepositoryId=thirdparty
(备注:需配置settings.xml)
发布到本地和远程仓库
mvn clean install deploy
指定pom.xml
mvn clean compile package -Dmaven.test.skip=true -f pom_war.xml

mvn clean deploy -f pom_jar.xml

五、导入到eclipse中
1.打开eclipse,先配置maven仓库路径
Window----Perferences-----java-----Build Path-----Classpath Variables
New一个变量的类路径。
Name:M2_REPO
Path:C:Usershuligong.m2 epository
2.在eclipse中导入刚创建的项目myproj
六、包的更新与下载
Maven中央仓库地址:http://search.maven.org
格式:
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
<optional>true</optional>
</dependency>
更改后重新执行:mvn eclipse:eclipse
官方教程:http://maven.apache.org/users/index.html
其他命令:
validate:验证工程是否正确,所有需要的资源是否可用。
compile:编译项目的源代码。
test:使用合适的单元测试框架来测试已编译的源代码。这些测试不需要已打包和布署。
Package:把已编译的代码打包成可发布的格式,比如jar。
integration-test:如有需要,将包处理和发布到一个能够进行集成测试的环境。
verify:运行所有检查,验证包是否有效且达到质量标准。
install:把包安装在本地的repository中,可以被其他工程作为依赖来使用。
Deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
clean:清除先前构建的artifacts(在maven中,把由项目生成的包都叫作artifact)。
site:为项目生成文档站点。
-Dmaven.test.skip=true 跳过单元测试
mvn clean dependency:copy-dependencies package
这个命令将先清除项目,然后拷贝依赖,最后把项目打包

mvn -f xxx.xml可以指定pom文件进行构建。

mvn -s /path/to/user/my-settings.xml 指定settings文件

mvn dependency:purge-local-repository 删除本地仓库

分析jar包依赖关系

mvn dependency:analyze

mvn dependency:tree

mvn dependency:tree > tree.txt

mvn dependency:tree -Dverbose -Dincludes=org.elasticsearch > tree.txt

七、创建一个Web项目
比普通项目多加一个参数DarchetypeArtifactId ,命令如下:
D:pub>mvn archetype:generate -DgroupId=com.jeedev.mywebproj -DartifactId=mywebproj -DarchetypeArtif actId=maven-archetype-webapp -Dversion=1.0
然后在项目目录下执行mvn eclipse:eclipse即可。
八.使用Jetty
官方文档:http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html
http://docs.codehaus.org/display/JETTY/Maven+Jetty+Plugin
在上一节七的基础上,修改pom.xml
<build>
<finalName>mywebproj</finalName>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>7.0.0.pre5</version>
</plugin>
</plugins>
</build>
然后再项目下执行 D:pubmywebproj>mvn jetty:run
就默认启动端口为8080的server了,访问 http://localhost:8080/mywebproj/ 就能看到hello world了。
一个可参考的配置:
<build>
<finalName>mywebproj</finalName>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>7.0.0.pre5</version>
<configuration>
<scanIntervalSeconds>10</scanIntervalSeconds>
<stopKey>foo</stopKey>
<stopPort>9999</stopPort>
</configuration>
<executions>
<execution>
<id>start-jetty</id>
<phase>pre-integration-test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<scanIntervalSeconds>0</scanIntervalSeconds>
<daemon>true</daemon>
</configuration>
</execution>
<execution>
<id>stop-jetty</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
九、创建一个代理仓库
十、maven项目在eclipse中调试--tomcat
十一、maven项目在eclipse中调试--jetty
十二、创建多模块项目
十三、完整可用的pom.xml
1.SpringMVC+Spring+Ibatis+MySQL
2.SpringMVC+Spring+Hibernate+MySQL
3.Struts2+Spring+Hibernate+MySQL
十四、使用SpringSide4
https://github.com/springside/springside4/wiki/QuickStartSpringSide4_QuickStart
http://www.cnblogs.com/heshan664754022/p/3255557.html如何将Springside4项目转成Eclipse项目
十五:修改版本号
mvn versions:set -DnewVersion=2.1.0-SNAPSHOT
mvn versions:commit
mvn versions:revert

相关参数说明

参数默认值说明
allowSnapshotsfalse是否更新-snapshot快照版
artifactId${project.artifactId}指定artifactId
generateBackupPomstrue是否备份pom文件
groupId${project.groupId}指定groupId
newVersion设置的新版本号
nextSnapshotfalse更新版本号为下一个快照版本号
oldVersion${project.version}指定需要更新的版本号可以使用缺省‘*'
processAllModulesfalse是否更新目录下所有模块无论是否声明父子节点
processDependenciestrue是否更新依赖其的版本号
processParenttrue是否更新父节点的版本号
processPluginstrue是否更新插件中的版本号
processProjecttrue是否更新模块自身的版本号
removeSnapshotfalse移除snapshot快照版本,使之为release稳定版
updateMatchingVersionstrue是否更新在子模块中显式指定的匹配版本(如/项目/版本)。

参考versions-maven-plugin命令介绍

参考:
https://github.com/springside/springside4/wiki/MavenSpringSide4_Wiki_Maven
http://www.tuicool.com/topics/11070054 Maven主题
http://www.cnblogs.com/fnng/archive/2011/12/02/2272610.html maven环境快速搭建
http://www.cnblogs.com/fnng/archive/2011/12/16/2290587.html Maven 环境快速搭建二(eclipse+maven2+jetty)
http://trinea.iteye.com/blog/1290898maven用途、核心概念、用法、常用参数和命令、扩展
http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html jetty-maven-plugin
http://docs.codehaus.org/display/JETTY/Maven+Jetty+Plugin jetty-maven-plugin
http://www.blogjava.net/alwayscy/archive/2007/05/19/118584.html 天生一对"Maven2+Jetty" -- Maven2创建并管理WebApp,并使用Maven Jetty Plugin在Eclipse中调试
http://wenku.baidu.com/view/4509cb04e87101f69e319555.htmlMaven权威指南中文版.pdf
http://wenku.baidu.com/view/8eb8f54469eae009581becbd.html 淘宝Maven培训.pdf
http://wenku.baidu.com/view/80e4c3136edb6f1aff001fdd.html Maven实战.pdf
http://wenku.baidu.com/view/3fae1ce9102de2bd960588a5.html Maven3应用入门讲座.pdf
http://wenku.baidu.com/view/6e54641b227916888486d78a.html Maven2+Eclipse开发J2EE
http://www.mkyong.com/struts2/struts-2-hello-world-example/struts2-maven

http://aijezdm915.iteye.com/blog/1335025 maven Nexus入门指南(图文)

http://blog.csdn.net/wang379275614/article/details/43940259/ Maven仓库—Nexus环境搭建及简单介绍

http://121088825.iteye.com/blog/2337515 速度很快的 Maven 远程仓库(阿里云 nexus 仓库)

免责声明:文章转载自《Maven学习笔记》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Ionicons的使用IOS开发 应用程序图标数字角标下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ios 获取app版本号

let infoDictionary = Bundle.main.infoDictionary!let appversion = infoDictionary["CFBundleShortVersionString"] as! String   //获取app的版本号 let deviceId = UIDevice.current.identifierFo...

adt-bundle更新eclipse,以及搭建android环境

曾经开发一直去android官网下载adt-bundle的。里面已经包括了eclipse和android SDK,搭建android环境特别方便,仅仅须要3步:1.下载并安装jdk(也就是jar se) 2.配置java环境变量 3.下载adt-bundle。这样就能够打卡eclipse直接开发Android了。 可是,adt-bundle有一个缺点就...

软件版本号规范

原文:https://blog.csdn.net/master_yao/article/details/51274163 1.软件版本阶段说明 oBase版:此版本表示该软件仅仅是一个假页面链接,通常包括所有的功能和页面布局,但是页面中的功能都没有做完整的实现,只是做为整体网站的一个基础架构。 oAlpha版:此版本表示该软件在此阶段主要是以实现软件功能为...

webpack安装&amp;amp;指定版本安装&amp;amp;遇到的问题

1.安装nodejs,安装完成,cmd命令行中输入node -v 查看版本号,版本号显示则说明安装成功2.npm包管理器是集成在node中的,输入 npm -v,显示npm版本号3.创建package.json文件,输入命令 npm init,工程目录下就会生成一个package.json文件(全局安装webpack) 4.安装webpack,输入命令 n...

Android编程获取手机型号,本机*,sdk版本号及firmware版本号号(即系统版本号号)

Android开发平台中,可通过TelephonyManager 获取本机号码。 TelephonyManager phoneMgr=(TelephonyManager)this.getSystemService(Context.TELEPHONY_SERVICE); txtPhoneNumber.setText(phoneMgr.getLine1Num...

npm和package.json那些不为常人所知的小秘密

此文已由作者黄锴授权网易云社区发布。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 强大的命令功能 如果你没使用过script,那你可算是从来没手动编辑过package.json。script作为package.json里最强大的功能,它赋予你新增脚本的能力。特别是从npm@2.0.0 之后,你可以用自定义参数执行脚本。甚至有人宣言,有了npm你可...