项目构建系统之 Maven
1)大型商城项目按业务分成商品管理、用户管理、订单管理等等模块: ![在这里插入图片描述](https://static001.geekbang.org/infoq/e8/e8afe9371db9e9e6d3279acb9dfc3a1c.png) 2)中小型项目按照传统项目分为 Web、Service、Dao 层,依照员工自身的业务能力分配工作: ![在这里插入图片描述](https://static001.geekbang.org/infoq/29/296346f2278481d6a5eec55cdbfb4d4c.png) []( )2 Maven 的下载、安装以及配置环境变量 ======================================================================================== 1. 在 Maven 官网下载安装包: [链接]( )。Maven 就像是 Tomcat 一样,解压后就可以直接使用,同时对应的目录作用也可以参考 Tomcat。 2. 安装 JDK。 3. 配置环境变量: 1)win + r 打开运行窗口 或者 进入 cmd 命令窗口; 2)输入 sysdm.cpl 打开系统属性 -> 高级 -> 环境变量; 3)新建系统变量,变量名:MAVEN\_HOME,变量值:Maven 安装路径; 4)在 Path 下追加一条属性指向 Maven 的 bin 目录 %MAVEN\_HOME%/bin 4. 配置阿里云镜像 在 setting.xml 文件中加入如下代码: <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> 5. 建立 Maven 本地仓库 Maven 搜寻 jar 包的搜索路径如下: ![在这里插入图片描述](https://static001.geekbang.org/infoq/49/4991520f48f35bab0891976f79f79b93.png) 为了在没有网络时方便自己的 jar 包导入,可以自定义本地仓库的位置,方式为:在 setting.xml 加入如下代码: <localRepository>(自己自定义的本地仓库的位置,比如:D:\localRepository)</localRepository> 6. 本地仓库中 jar 包的坐标 Maven 项目通过坐标的方式从本地仓库获取 jar 包,坐标:由公司/组织名(groupId) + 项目名/子项目名(artifactId) + 版本号(version)组成。 []( )3 在 IDEA 中使用 Maven 创建 Java 工程 ========================================================================================== []( )3.1 在 IDEA 中配置自己安装的 Maven ----------------------------------------------------------------------------------------- ### []( )1)设置 Maven 自动导 jar 包 ![在这里插入图片描述](https://static001.geekbang.org/infoq/2f/2fda64eb73ded72881a29103e0591b8c.png) ### []( )2)IDEA 中配置自己安装的 Maven ![在这里插入图片描述](https://static001.geekbang.org/infoq/eb/eb32f4d9fc9d69c13d76905c88ce74a7.png) []( )3.2 在 IDEA 中利用 Maven 创建 Java 项目 -------------------------------------------------------------------------------------------- ### []( )1)点击 FIle-New-Project-Maven,然后点击 Next ![在这里插入图片描述](https://static001.geekbang.org/infoq/64/6488e2e07e974a1bdf42781902b018c7.png) ### []( )2)填写坐标(GAV)、路径等【如果创建的是模块,则会有下图所示的继承,如果直接创建的是 Project 不存在这一项】 ![在这里插入图片描述](https://static001.geekbang.org/infoq/18/18059eeb47ac9d37f398a908d86ca09a.png) ### []( )3)配置 Maven 核心配置文件的 pom.xml 主要是在该 xml 文件中配置依赖,导入 jar 包。现在我以在 Maven 工程中导入 jstl 包为例。 1. 在百度中搜索 jstl maven,点击 maven 的中央仓库。![在这里插入图片描述](https://static001.geekbang.org/infoq/06/06c186bc5b1da732eca4cc8caedc6c10.png) 2. 在其中会有很多的名为 jstl 的 jar 包,这个时候选择最相关的(relevance)是最好的。![在这里插入图片描述](https://static001.geekbang.org/infoq/2c/2c1c2de3352bf7d361de76c0eac7cbf6.png) 3. 复制对应的依赖代码,如下图,将代码放在 pom.xml 中。 4. 这个时候,因为我在 IDEA 中设置过自动下载 jar 包,所以,Maven 会先搜索本地仓库,如果本地仓库没有这个 jar 包,Maven 则会在我设置的阿里镜像仓库中搜索下载。 5. 点击完成,这个时候看工程目录,发现并不是和模板一样,这是因为 Maven 的自动配置还没完成,看右下角,需要点击是否同意导入,选择同意后,maven 则会自动配置,之后,maven 的约定目录就自动生成了。 ![在这里插入图片描述](https://static001.geekbang.org/infoq/3b/3b2710cff1b9eac1db9fd1d63eda6c80.png) ![在这里插入图片描述](https://static001.geekbang.org/infoq/ea/ea498ba30701beaff35f9e315a61b1ca.png) 6. 如果这个时候 Maven 没有自动下载,可以点击 maven install 辅助一下。 []( )4 在 IDEA 中使用 Maven 创建 Web 工程 ========================================================================================= 大致步骤和创建 Java 工程类似,这里只说一下其中不同的地方。 []( )4.1 创建一个 Maven Web 项目,如下如所示,注意要选择 maven 的 webapp -------------------------------------------------------------------------------------------------------------- ![在这里插入图片描述](https://static001.geekbang.org/infoq/3c/3c80371914ed4a48d50203807bd24435.png) []( )4.2 填写公司名、工程名等,以及用户设置文件以及本地仓库 ------------------------------------------------------------------------------------------------ ![在这里插入图片描述](https://img-blog.csdnimg.cn/20201203195442123.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI2MjEyNg==,size_16,color_FFFFFF,t ``` 【一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】 浏览器打开:qq.cn.hn/FTf 免费领取 ``` _70) []( )4.3 ~~ 相同步骤 ~~ --------------------------------------------------------------------------------- []( )4.4 配置 Tomcat 服务器 ---------------------------------------------------------------------------------- 这个时候如果想用 Tomcat 服务器的话,可以在 run 里面添加一个 local tomcat。![在这里插入图片描述](https://static001.geekbang.org/infoq/71/713164ba68035cb40327df08911a1bbd.png) 然后再 fix 一下,即 OK。 ![在这里插入图片描述](https://static001.geekbang.org/infoq/27/2717b2d9bb4838420164c93bb58cbe80.png) []( )5 在 IDEA 中导入 Maven 项目 ======================================================================================== []( )5.1 导入步骤 --------------------------------------------------------------------------- 1)打开 Project Structure - Modules - Import Module ![在这里插入图片描述](https://static001.geekbang.org/infoq/a0/a0976a4c7cff471fd2143e03d7ab3e5b.jpeg) 2)找到项目所在的位置 ![在这里插入图片描述](https://static001.geekbang.org/infoq/cb/cb10b912213ccab6a2efb339427286c9.png) 3)选择 Import module from external model(从外部模型导入模块)- Maven - Finish ![在这里插入图片描述](https://static001.geekbang.org/infoq/8f/8fe398e750af103b4642c10d07c89c0f.png) []( )5.2 在实际工作中总结的经验 ---------------------------------------------------------------------------------- ### []( )5.2.1 关于创建 Maven 项目之前在 pom.xml 中加入的代码块 在创建 Maven 工程的时候,现在对应的 pom.xml 文件里放入以下代码,以绝后患。 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties> <dependencies> <!-- https://mvnrepository.com/artifact/junit/junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> ### []( )5.2.2 利用 Maven 来为项目安装所需要的库 1. 从 GitHub 上或者其它地方下载的项目,代码中的需要的 jar 包我们并没有安装。这个时候,我们根据所需要的 jar 包名称在 [https://maven.aliyun.com/mvn/search]( ) 查找对应的 xml 代码。 2. 将 xml 代码写到 pom.xml 中的依赖中,但对应的 xml 依赖必须是 centra l 仓库。 3. 点击生命周期的 clean 以及 install 让 Maven 自动下在 jar 包。 4. Maven 会直接将该 jar 包下载到自己设置的本地仓库,然后,可以直接使用。 ### []( )5.2.3 dependency 标签的含义 在 pom.xml 中添加 dependency 标签,如下: <dependency> <groupId><groupId> <artifactId></artifactId> <version></version> </dependency> 含义如下: | 标签名 | 含义 | | --- | --- | | `<groupId>cn.itcast.maven</groupId>` | 项目名称,定义为组织名+项目名,类似包名 | | `<artifactId>maven-first</artifactId>` | 模块名称 | | `<version>0.0.1-SNAPSHOT</version>` | 当前项目版本号, snapshot 为快照版本即非正式版本,release 为正式发布版本 | | `<packaging>` | 代表打包类型: jar:执行 package 会打成 jar 包;war:执行 package 会打成 war 包;pom :用于 maven 工程的继承,通常父工程设置为 pom。 | []( )6 Maven 命令 ============================================================================ []( )6.1 Maven 的常用命令
评论