Maven项目管理工具

再次熟悉maven

由于某些原因,接下来的项目可能会用java开发,所以趁年前有点时间坐下准备。java已经有些年头没写过了。基础语法和数据结构已经看过相关文档手册复习过。maven我觉得还是有必要重新学习下,久了没有用。

我看完maven的教程和文档,总结了几点
1.明白maven是干啥的
2.maven配置的几个关键元素和字段
3.maven仓库的理解
4.构建生命周期的理解
5.基础命令

这几个是必须要熟记的。
至于测试,快照,自动化部署等等,后面开发自然会遇到。

maven是干啥的

项目管理工具,有点类似于npm。maven pom.xml就有点类似package.json. 定义项目名称,版本,依赖包和一些构建流程,如果你不只是想写点hello world,需要写项目,比然会用很多第三方库,自己也会开发很多公共库。 所以这个就显得比较重要了。

maven关键元素和字段

maven的pom.xml一般一个项目里面比较长,配置项也多,不过标签项一般都不多,用到的包一般都有配置的文档,拷贝过来改改就行。况且现在有ide帮我们自动干这些事情。
需要了解的标签:
project,modelVersion,groupId,artifactId,version,都比较好了解,不过groupId和artifactId都是项目的标识,只是artifactId是项目名称,groupId是项目组名称,如果只有个的话,大部分会设置成一样
pom是有层级的,有父pom(super)的概念,有继承
repositories、repository指定仓储
pluginManagement,plugins,plugin 插件,因为maven的各个生命周期所触发的功能都是靠插件来实现,所以这里有非常多插件,认识常用的几个就行 maven-compile-plugin编译源代码、exec-maven-plugin执行java console、maven-dependency-plugin直接引用一些类库
dependencies,dependency 外部依赖

maven仓库的理解

maven仓库,远程,私有库,本地库。和git差不多,大多数报错就是库文件问题。多几次就熟悉了

构建生命周期的理解

生命周期比较重要,熟悉和理解maven的生命周期,对整个执行流程更清晰,不至于两眼一抹黑,无脑copy命令

基础命令

maven 命令的格式为 mvn [plugin-name]:[goal-name],可以接受的参数如下。


-D 指定参数,如 -Dmaven.test.skip=true 跳过单元测试;

-P 指定 Profile 配置,可以用于区分环境;

-e 显示maven运行出错的信息;

-o 离线执行命令,即不去远程仓库更新包;

-X 显示maven允许的debug信息;

-U 强制去远程更新snapshot的插件或依赖,默认每天只更新一次。

常用maven命令

创建maven项目:mvn archetype:create ,后面的版本建议是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 

标签: maven maven命令 项目管理

发表评论: