再次熟悉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