开发者学堂课程【Maven框架实战教程:Idea+Maven(6)】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/641/detail/10581
Idea+Maven(6)
内容简介:
一、目录变为 java 目录
二、普通 Maven 项目结构
三、Maven 生命周期
一、目录变为 java 目录
这个是Maven的约定目录,约定是Java目录和测试目录。
二、普通 Maven 项目结构
重点注意内容跟之前不一样,src/main/java和src/test/java,所以要注意其结构。
1.Java目录
java 目录在 src/main/java,这是最核心的地方,测试无所谓,只要按照团队的要求即可,但是要记住核心在 src/main/ Java。
同时,注意目录颜色,这跟 Eclipses 不一样,两个Java的颜色不一样,一个蓝色,一个绿色。
下面把这个项目再建一遍:普通项目,比如这是做的第二个版本2.0,版本可以自己改。
点击下一步,每次默认基本上都找 D 盘 idea,只要第一次选了那个地方,以后都是这个地方。
2.问题
加载有时候会有点慢,因为需要有网络。通过刚才所讲的普通Maven项目,和现在所看到的 Maven 项目,有哪些不同的地方,注意观察不同的地方。
现在这个项目相对来说还不算是一个正常的 Maven 项目,结构没问题,现在需要把目录做转换。
但是如果非要手动转也可以,确实在不行的时候,点击右键找到 Mark Directory as,可以把目录变成 source,可以把目录变成 resource,可以把目录变成 test resource,这是手动方式,但是这个方式不建议。
其实完全不用手动,在设置 Maven 自动导入的时候就可以解决这个问题。设置自动导入,在 File/Settings/Importing,点击 apply,点击 ok。
设置自动导入的时候,其实做了两件事情,第一件事情打包,第二件事情是把目录转化。
通过建 Maven 项目,有一个很重要概念就是依赖的管理,其实就是坐标。
<dependencies>
<!--
依赖管理
-->
<dependency>
<group Id>junit</group Id>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
通过从刚才所讲的,从 Maven 的项目到关联本地仓库,本地仓库来关联远程仓库,下载 jar 包,这一套流程已经走通。
那么在讲坐标之前,先讲一下 Maven 的生命周期。
三、Maven 生命周期
Maven 的生命周期其实很简单,编辑、测试、打包、部署。用起来也非常简单,下面介绍一下 Maven 生命周期。
1.编译
编译就是编程变成.class 文件。不用写程序,自带的程序都有。
/**
*Hello world!
*
*/
public class App
{
public static good main(String[] args)
{
System.out.println("Hello World!");
}
}
项目中 lifecycle 就生是命周期的意思,比较关键的所用到的。
先把图标找到,之后点绿色按钮,点一下就开始执行了。
看到 target class 变成.class 文件了,之前没有 target 目录,这个项目就编译成功。
2.清理
清理就是把编译好的 class 文件清除掉,即清除 target 目录中的文件。
3.测试
测试,该命令会将 test 目录中的源码进行编译,因为测试和源码做了一个分开。
之前是没有测试 class,没有对测试类做打包的,所以测试是单独做了一个分支的,一定要注意到这个测试是有单独打包。
4.安装
安装:install(含部署),它包含部署的能力,打包并部署到本地仓库。
一定要注意关联到本地安装的 JDK,它需要用这些环境,如果之前的 JDK 有没有关联好,有可能有些地方就会 build failure,会失败。所以一定要确定之前 JDK 的这些环境是没问题的,在环境没有问题的情况下,又关联到了仓库,那么安装应该是没问题。
install,部署到本地仓库。现在是171802这个版本,之前的组织12个项目名,版本2.0。
现在安装,首先看到 build success,同时看到多了一个 Java171802-2.0的 jar 包。Installing 把这一个 jar 包 D 盘的到本地仓库中去了。
到了仓库就可以做共享,特别到了第四阶段做分布式的时候,相互之间做依赖就靠这个东西。
第三阶段虽然用的还不是那么多,但是大家注意已经打成 jar 包,同时要注意有版本号。