maven项目什么时候用到编译,打包?

1,在本地new 一个tomcat实例,add一个maven项目到其中,点击run。这个过程是否并不涉及maven的编译等等,这是tomcat自己复制了各个jar,class文件,然后自己运行?
2,那我们一般在本地开发的时候,是不是并不需要maven的编译,打包等操作
3,公司有专门的运维,我们开发好上传到svn,就没开发啥事了。我想了解下之后的流程,各位能否给讲讲?
多谢

阅读 6.1k
2 个回答
  1. IDE中发布Maven web项目涉及到maven的编译打包。你说的tomcat自己复制了各个jar,class文件,jar/class文件哪来的?maven编译出来的。IDE中Maven web项目通常可以选择两种方式发布,war/dir,war包方式涉及到编译和打包,目录方式应该是先打成war包然后解压出来的

  2. 开发过程中,IDE会自动使用maven的编译。比如在pom中声明一个依赖,IDE会自动将依赖包引入项目,依赖包的下载靠的就是maven的编译。并且项目的编译输出路径不再是非maven项目的bin等目录,而是maven的target下相关目录。

  3. 之后的流程应该就是打包,然后发布到线上的web容器


一些常用命令及简单解释:

  • mvn compile: 将依赖下载到本地仓库(一般是~/.m2/repository),并编译源码和资源输出到target/classes目录下

  • mvn test-compile:编译测试源码,同上,但输出到target/test-classes目录下

  • mvn test: 运行测试

  • mvn package: 编译、测试并按指定格式打包

  • mvn install: 打包并将包安装到本地仓库中

  • mvn deploy: 安装并发布到指定的远程仓库中

一般运维会采用jekins等自动部署工具,jekins有许多插件,会监听git或svn的变化,如有变化就会用git或svn插件拉下代码,并用maven插件执行其中的install命令;maven命令是嵌套的有生命周期概念,install会按顺序执行校验、下载依赖、复制资源、编译、打包、安装等过程,通常是打包为war发布到tomcat中,或者发布为一个新的Docker镜像中。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题