[Java] Maven

介绍

  • Maven:用于构建和管理Java相关项目的工具
  • 三种工程
    • jar:包括class文件,是开发是要引用的通用类
    • war:包括WEB-INF,是做好的web应用,如网站或服务
    • pom(project object mode):做jar包的版本控制
  • 一键迁移项目
  • 远程热部署
  • 持续集成(CI)中的重要角色(配合jenkins)
  • 节省本地磁盘空间(告诉项目使用哪个jar,去哪找)

使用

  • maven安装目录
    • bin:存放启动执行脚本
    • boot:存放启动maven的引导文件
    • conf:存放maven核心配置文件
    • lib:存放maven运行时依赖jar文件
  • 项目目录结构

  • 统一维护jar包
    • 把所有的jar包都放在"仓库“ 里
    • 在pom.xml里写包名和版本号
    • 不同项目共享jar包
  • maven构建项目时,默认到本地仓库找依赖,如果没有就去网上下载到本地仓库
  • maven构建项目后,全部产物在target目录中
  • maven构建生命周期
    • 清理(clean)--编译(compile)--测试(test)--打包(package)--部署(deploy)
  • 项目坐标(maven项目唯一标识)
    • groupId:公司组织名、域名倒置
    • artifactId:项目名
    • version:版本号
  • name:项目名
  • url:项目上线地址
  • properties:项目配置
    • sourceEncoding:项目编码
    • compiler.source:JDK版本
  • build:
    • fileName:当前项目名称
    • pluginManagement:项目中使用的插件版本
  • scope
    • test:编译、测试时生效,运行时无效
    • compile:默认属性,编译、测试、运行时都生效 
    • provided:编译、测试、运行时生效,仅在当前容器中生效(部署到tomcat中不生效,适用于部署容器自带依赖的情况)

仓库

  • 用于存放项目需要的jar包,实现多个项目共享
  • 设置仓库位置
    • apache-maven-3.5.0confsettings.xml
  • 设置下载路径
    • 默认下载路径在国外
    • 设置成阿里云路径

Eclipse设置

  • 设置Maven路径
    • 菜单->Window->Preferences->Maven->Installations-> 指定路径
  • 设置仓库路径
    • 菜单->Window->Preferences->Maven->User Settings->Global Settings

scope

添加包

  • 给Maven项目添加jar
    • pom.xml->OverView->Add->Enter GroupId...->包名(Scope要选择compile)
    • 保存后运行
  • 无法搜索到,重建本地仓库
    • 菜单->Window->Show View->Other->Maven->Maven Repositories->Local Repository->Rebuild Index

示例

  • taotao-parent:整个项目的父工程,用来做版本控制(pom)
  • taotao-manager:用来做聚合工程(pom)
    • taotao-manager-pojo(jar)
    • taotao-manager-dao(jar)
    • taotao-manager-service(jar)
    • taotao-manager-web(war)
  • taotao-rest(war)
  • taotao-portal(war)
  • taotao-common(jar)

参考

Maven中心库

https://mvnrepository.com/

Eclipse中导入Maven(Web)项目并配置运行

https://blog.csdn.net/itbiggod/article/details/79490219

Eclipse中导入Maven项目后没有run on server

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/84989742

https://blog.csdn.net/Mr_Yzko/article/details/78458873

eclipse使用maven教程

https://blog.csdn.net/learn_tech/article/details/82491412

eclipse.ini配置详解

https://blog.csdn.net/wqy_zyc/article/details/79661757

Downloading Apache Maven 3.6.3

http://maven.apache.org/download.cgi

Maven父子工程

https://www.cnblogs.com/chy18883701161/p/12297476.html

调用其它模块module的类方法

https://blog.csdn.net/big_data1/article/details/81218006

删除项目,关闭自动打开上一次项目

https://blog.csdn.net/weixin_41446182/article/details/95760734

原文地址:https://www.cnblogs.com/cxc1357/p/12525148.html