一、Maven是干什么的?
我相信只要你写过足够多的代码,就...
肯定有思考过写一个脚本方便把项目自动打包成war并部署到服务器;
肯定有思考过对于一个web项目用什么样的文件结构才比较合适,怎么样才算得上是best practice;
也许还想过弄个中心仓库免去每次都要自己网上手动找包的麻烦 ...
肯定有思考过对于一个web项目用什么样的文件结构才比较合适,怎么样才算得上是best practice;
也许还想过弄个中心仓库免去每次都要自己网上手动找包的麻烦 ...
- - - - - - - - - - - - -
Maven正是一个做这些事情的工具。如果你真的尝试做过上面的事情,那就很容易理解Maven了。
那么自己弄和用Maven有什么区别呢?借用《Maven编程实战》里的一个的比喻,建立高度自定义的构建系统(自己写脚本)就像买组装PC,虽然其乐无穷,但是耗时费力,结果也不一定很好,并且实际项目中也不可能给你这么多时间。使用Maven就像购买品牌PC,省时省力,而且直接就是best practice,还能得到Maven社区的大量支持 ...
二、用Maven的好处
个人觉得用Maven最大的好处在于两个字:统一。具体的一些理由:
- 让你在IDEA和Eclipse等各种集成环境中切换毫无压力
- 方便大家合作写代码,节约了学习成本,因为各种东西都已经约定、统一好了
- 并且这些约定还是best practice,不仅成熟、稳定,还好用!
- 资料多、支持多,随便去GitHub上看Java项目,Maven结构的尤其多
- 腾出自己网上到处下jar包的时间,更多的时间做其它事情
- 自动化打包部署,有效减少鼠标键盘的磨损度、缓解脱发等不良症状。。。
- (手动省略号。。。。)
总之。Maven绝对是个懒人必备的工具。不过,在刚开始,你不得不花一点时间来适应、学习它(很快就会变成习惯!)。只需少许的时间就能掌握这样一件神器,显然非常划算。
三、Maven与命令行
跟着官方教程操作一遍差不多就好了。。稍微记录一下↓
▲运行mvn package后得到jar包的实际结构(resource的位置):
▲哪里找包:https://mvnrepository.com/
▲生成简单java项目原型:
mvn -B archetype:generate \ -DarchetypeGroupId=org.apache.maven.archetypes \ -DgroupId=com.mycompany.app \ -DartifactId=my-app
▲生成简单java web项目原型:
mvn archetype:generate \ -DarchetypeGroupId=org.apache.maven.archetypes \ -DarchetypeArtifactId=maven-archetype-webapp \ -DgroupId=com.mycompany.app \ -DartifactId=my-webapp
四、Maven与IntelliJ IDEA
本来想写点什么,发现官网也准备好了。。feature-rich integration for Maven以及https://www.jetbrains.com/help/idea/maven-support.html
不过我觉得还是应该以命令行为主,集成环境里的操作作为辅助,这样即便换个环境也很快适应。
▲以图表方式查看项目依赖关系:
▲Maven怎么和web开发结合可以参考这个:https://www.imooc.com/learn/587