maven 命令除了常用的几个,大部分经常记不住,整理一下,方便查询。
maven 命令的格式为 mvn [plugin-name]:[goal-name],可以接受的参数如下,
-D 指定参数,如 -Dmaven.test.skip=true 跳过单元测试;
-P 指定 Profile 配置,可以用于区分环境;
-e 显示maven运行出错的信息;
-o 离线执行命令,即不去远程仓库更新包;
-X 显示maven允许的debug信息;
-U 强制去远程更新snapshot的插件或依赖,默认每天只更新一次。
- maven 创建目录的两种方式
1.archetype:generate 按照提示进行选择
2.archetype:generate -DgroupId=组织名, 公司网址的反写+项目名 -DartifactId=项目名-模块名 -Dversion=版本号 -Dpackage=代码所存在的包名
常用maven命令
创建maven项目:mvn archetype:generate
指定 group: -DgroupId=packageName
指定 artifact:-DartifactId=projectName
创建web项目:-DarchetypeArtifactId=maven-archetype-webapp
创建maven项目:mvn archetype:generate
验证项目是否正确:mvn validate
maven 打包:mvn package
只打jar包:mvn jar:jar
生成源码jar包:mvn source:jar
产生应用需要的任何额外的源代码:mvn generate-sources
编译源代码: mvn compile
编译测试代码:mvn test-compile
运行测试:mvn test
运行检查:mvn verify
清理maven项目:mvn clean
生成eclipse项目:mvn eclipse:eclipse
清理eclipse配置:mvn eclipse:clean
生成idea项目:mvn idea:idea
安装项目到本地仓库:mvn install
发布项目到远程仓库:mvn:deploy
在集成测试可以运行的环境中处理和发布包:mvn integration-test
显示maven依赖树:mvn dependency:tree
显示maven依赖列表:mvn dependency:list
下载依赖包的源码:mvn dependency:sources
安装本地jar到本地仓库:mvn install:install-file -DgroupId=packageName -DartifactId=projectName -Dversion=version -Dpackaging=jar -Dfile=path
web项目相关命令
启动tomcat:mvn tomcat:run
启动jetty:mvn jetty:run
运行打包部署:mvn tomcat:deploy
撤销部署:mvn tomcat:undeploy
启动web应用:mvn tomcat:start
停止web应用:mvn tomcat:stop
重新部署:mvn tomcat:redeploy
部署展开的war文件:mvn war:exploded tomcat:exploded
链接:https://www.jianshu.com/p/6f57c322e50e
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处
maven 坐标和仓库
1、坐标(构件通过坐标作为其唯一标识)
groupId、artifactId、version
2、仓库:
本地仓库
远程仓库(全球中央仓库https://repo.maven.apache.org/maven2)
镜像仓库
/conf/setting.xml镜像仓库配置:
<mirror>
<id>maven.net.cn</id>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
3、修改本地仓库的位置
<localRepository>...</localRepository>
Ps:一旦配置了镜像仓库,那么先前的所有配置都会转到镜像仓库中。
默认仓库位置.m2 repository,将settings.xml复制到更改后的本地仓库中,这样maven版本更新了,也不用修改settings.xml了
maven的三套生命周期:
完整的项目构建过程:清理,编译,测试,打包,集成测试,验证,部署
- clean 清理项目
pre-clean 执行清理前的工作
clean 清理上一次构建生成的所有文件
post-clean 执行清理后的工作 - default 构建项目(最核心)
compile
test
package
install - site 生成项目站点
pre-site 生成项目站点前要完成的工作
site 生成项目的站点文档
post-site 生成项目站点后要完成的工作
site-deploy 发布生成的站点到服务器上
pom.xml 解析
版本说明
snapshot 快照
alpha 内部测试
beta 公测
Release 稳定
GA 正式发布
pom.xml常用元素
modelVersion 指定了当前pom版本
groupId 反写的公司网址+项目名
artifactId 项目名+模块名
version 版本号 第一个0表示大版本号,第二个0表示大版本号,第三个0表示大版本号 0.0.1snapshot快照
packaging 打包方式 默认是jar
name 项目的描述名
url 项目的地址
description 项目描述
developers 开发人员信息
licenses 许可证信息
dependencies
dependency
scope 依赖范围
optional 设置依赖是否可选
exclusion 排除依赖
dependencyManagement 依赖管理 不会被运行
build
plugins 插件列表(指出坐标)
parent 对父模块的继承
modules 定义多个模块 一起进行编译
dependency scope:指定依赖范围(参考:scope:指定依赖范围
--compiler:默认的范围,编译测试运行都有效
--provided:编译测试时有效
--runtime:测试和运行时有效
--test:测试时有效
--system:与本机系统相关联,可移植性差
--import:导入的范围,只在dependencyManagement中使用,表示从其他的pom中
导入dependency的配置)
依赖冲突
不同版本的构件
1.短路优先
2.先声明先优先:如果路径长度相同,则谁先声明,先解析谁
- 短路优先 A->B->C->x
A->d-X 优先 - 先声明,先优先
创建web项目
1:打开Eclipse
2:创建Maven项目,选择archetype-webapp模板
3:解决Servlet没有生命依赖的问题,在pom.xml中添加servlet的依赖,可以去中央仓库选择servlet版本
例如:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.0-b01</version>
</dependency>
4:手工完善Maven约定好的目录结构
可以在navigator窗口中手动新建
/src/main/java
/src/test/java
5:Project Explorer中更新项目
6:创建项目的输出目录
build path中设置输出路径output folder,确保每个module都输出在../tartet/classes目录中
7:将Maven项目转换为Web项目
右击-属性-project facets-勾选动态模板(Dynamic Web Module)
8:修改部署时配置去掉多余的配置项例如:测试代码
右击-属性-Deployment Assembly-删除多余的配置项(测试代码)
9:使用package命令打包项目—使用jetty这个插件(在Maven的中央插件库中寻找)作为Web容器,在中央仓库查找jetty的plugin坐标配置到pom.xml中
pom.xml例子:
<build>
<finalName>webbproject-demo</finalName>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>7.0.0.pre5</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
tomcat: http://tomcat.apache.org/maven-plugin-2.2/
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat6-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</pluginManagement>
作者:Rapheal
链接:https://www.jianshu.com/p/67cf0a3d7a6a
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。