Maven 应用实战
Maven 应用实战
实验预计耗时:90分钟
1. 课程背景
1.1 课程目的
Maven 是一个项目管理工具,我们通过创建 Maven 工程快速获取项目所需要的 jar 包,并保存在本地仓库,也可以帮助我们对自己的项目进行生成jar包等项目管理操作。通过 Maven 实战练习实验教程,学员将体验 Maven 项目从开发到云上部署的全部流程。通过本次实验课程,您可以掌握:
- Java 和 Maven 开发环境的安装与配置;
- 了解 Maven 工程的开发流程;
- 掌握 Maven 的基本功能;
- 掌握腾讯 Kona 的安装与配置;
1.2 课前知识准备
学习本课程前,学员需要掌握以下前置知识:
1、能力基础
- Linux 运维基础:掌握 Linux 远程登录、文件与目录管理等。
- Java 开发基础:掌握 Java 基础语法,了解面向对象开发等。
2、相关概念
- Java:Java 是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java可运行于多个平台,如Windows, Mac OS,及其他多种UNIX版本的系统。
- JDK:JDK(Java Development Kit)称为 Java 开发包或 Java 开发工具,是一个编写 Java 小程序和应用程序的程序开发环境。JDK 是整个 Java 的核心,包括了 Java 运行环境(Java Runtime Envirnment),一些 Java 工具和 Java 的核心类库(Java API)。
- 腾讯 Kona(Tencent Kona):基于 OpenJDK8,由腾讯专业技术团队提供技术维护、优化及安全保障。腾讯云团队针对腾讯 Kona 在云场景的支撑及特性进行了开发及优化,使其更加适合云场景下的 Java 业务,为您提供最优的 Java 云生产环境及解决方案。
- Maven:Maven 是一个项目管理工具,基于项目对象模型(POM)的概念,可以通过一小段描述信息来管理项目的构建,报告和文档。
- Maven构建生命周期:Maven 构建生命周期定义了一个项目构建跟发布的过程,一个典型的 Maven 构建(build)生命周期是由以下几个阶段的序列组成的:
阶段 | 处理 | 描述 |
---|---|---|
验证 validate | 验证项目 | 验证项目是否正确且所有必须信息是可用的 |
编译 compile | 执行编译 | 源代码编译在此阶段完成 |
测试 test | 测试 | 使用适当的单元测试框架(例如 JUnit)运行测试。 |
包装 package | 打包 | 创建 JAR/WAR 包如在 pom.xml 中定义提及的包 |
检查 verify | 检查 | 对集成测试的结果进行检查,以保证质量达标 |
安装 install | 安装 | 安装打包的项目到本地仓库,以供其他项目使用 |
部署 deploy | 部署 | 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程 |
2.实验环境
2.1 实验操作环境
本课程需要以下实验操作环境:
- 可以接入互联网的笔记本电脑或者台式机(本实验使用 Windows 系统)
- 腾讯云 CVM(CentOS 7.6 64位)
- 本地Java开发环境(JDK 版本1.8,Maven 版本3.5及以上)
- 集成开发环境:Eclipse 或 IntelliJ IDEA
2.2 实验架构图
本实验在本地部署 Java 开发环境,需安装 JDK,Maven,开发工具演示分别使用 Eclipse 和 IntelliJ IDEA,SSH 工具使用 PuTTY。在本地完成 Maven 项目开发与打包后,将 jar 文件上传至云服务器运行。实验架构图如下:
2.3 实验的数据规划表
资源名称 | 数据 | 说明 |
---|---|---|
腾讯云账号 | 账号:XXXXXXXX、密码:XXXXXXXX | 涉及产品如下:VPC、CVM |
JDK | 版本:1.8 | |
腾讯 Kona | 版本:8.0 | |
Maven | 版本:3.6.3 | |
IntelliJ IDEA | 版本:最新版即可 | |
Eclipse | 版本:最新版即可 | |
PuTTY | 版本:0.73 | SSH工具,请学员自行安装 |
3. 实验流程
实验共分为四个步骤,首先任务1带领学员在本地部署 Java 开发环境,内容包括 Java、Maven、IntelliJ IDEA 以及 Eclipse的安装与配置。
接着我们开始开发 Maven 程序,程序共包含两个 Maven工程:hello-api 和 hello-project。hello-project为程序的执行工程,hello-api 作为 hello-poject 的依赖工程。任务2与任务3将分别使用 IntelliJ IDEA 和 Eclipse 完成 hello-api 和 hello-project 的开发与部署。
最后我们购买一个 CVM 实例,快速实现项目的云上部署。任务4会涉及到云服务器 CVM 的购买,腾讯 Kona 的安装配置,以及项目上传到 CVM 并运行。
4. 实验步骤
任务1 本地Java开发环境准备
【任务目标】
在计算机上安装 Java 的开发环境,包括 Java 和 Maven 的安装与配置,以及 IntelliJ IDEA 与 Eclipse 两款 IDE(集成开发环境)的安装与配置。
【任务步骤】
1、Java安装
如果没有安装 Java,请下载安装 Java 软件开发套件(JDK)。官方下载连接:https://www.oracle.com/technetwork/java/javase/downloads/index.html
1.在网页中找到 Java SE 8 点击【DOWNLOAD】。
2.在Java SE Development Kit这一栏,首先选择Accept License Agreement ,再选择下载与您电脑系统匹配的下载连接。
注意:下载需要注册Oracle账号,请自行注册。
3.启动 JDK 安装包,点击更改修改安装目录,点击下一步。并根据提示安装好 JDK 和 JRE。
4.安装成功后,设置 Java 环境(本实验使用的是Java 1.8.0_144版本,学员只要使用 jdk1.8 均不受影响)。
打开系统>高级系统设置>环境变量
设置 JAVA_HOME 环境变量,并指向您机器上的 Java 安装目录,本实验安装位置 D:\develop\Java\jdk1.8.0_144。
以 Java 1.8.0_144 版本为例,Windows 操作系统的输出如下:
变量 | 值 |
---|---|
JAVA_HOME | D:\develop\Java\jdk1.8.0_144 |
Path添加变量值 | ;% JAVA _HOME%\bin |
5.检查 Java 安装
打开终端,执行如下命令:
java -version
如果输出 Java 版本号,说明 Java 安装成功。
2、安装Maven
1.下载安装 Maven
官方下载连接:https://maven.apache.org/download.cgi
以Windows系统,3.6.3版本为例,点击 apache-maven-3.6.3-bin.zip 即可下载压缩包。
下载后可以解压至指定文件夹下,本实验使用 maven3.6.1 版本,Maven 的位置为 D:\develop\maven。
2.设置 MAVEN_HOME 和 PATH 环境变量
变量 | 值 |
---|---|
MAVEN_HOME | D:\develop\maven |
Path添加变量值 | ;%MAVEN_HOME%\bin |
3.验证 Maven 配置
当 Maven 配置完成后, 通过执行如下命令验证 Maven 是否配置成功。
mvn --version
4.Maven 配置私服地址
找到 Maven 所使用的配置文件 MAVEN_HOME/conf/settings.xml,在 settings.xml 中加入配置(若无法保存或编辑,先拷贝到非系统盘,编辑后替换原文件):
注:其中 localRepository 标签用于指定本地仓库位置,用于存放后续步骤中下载的依赖。本实验定义仓库位置为 D:\develop\maven\repository,参考如下:
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<div id="saka-gui-root"/>
<!-- 自定义的本地仓库路径 -->
<localRepository>D:\develop\maven\repository</localRepository>
<pluginGroups/>
<proxies/>
<servers/>
<mirrors/>
<profiles>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<url>http://repo1.maven.org/maven2</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://repo1.maven.org/maven2</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>qcloud-repo</id>
<repositories>
<repository>
<id>qcloud-central</id>
<name>qcloud mirror central</name>
<url>
http://mirrors.cloud.tencent.com/nexus/repository/maven-public/
</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>qcloud-plugin-central</id>
<url>
http://mirrors.cloud.tencent.com/nexus/repository/maven-public/
</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
<activeProfile>qcloud-repo</activeProfile>
</activeProfiles>
</settings>
5.验证配置是否成功
配置完 settings 后,可以在 CMD 命令行窗口执行如下命令。
mvn help:effective-settings
运行命令后,当我们看到 BUILD SUCCESS 时,表明 settings.xml 格式正确。
3、IntelliJ IDEA 安装与配置
1.下载 IntelliJ IDEA 安装包并安装,下载地址:
https://www.jetbrains.com/idea/download/#section=windows
选择社区版本即可。
IntelliJ IDEA 安装比较简单,安装按照默认安装配置即可。
2.首先配置 SDK(如 IDEA 版本改变导致此处无法配置,可新建项目后,在开发代码前进行设置)
在 Configure 选项栏下,点击 Project Defaults 下的 Project Structure。
选择 JDK 1.8,点击【OK】。
3.配置 Maven(如 IDEA 版本改变导致此处无法配置,可新建项目后,在开发代码前进行设置)
在 Configure 选项栏下,点击 Settings。
在搜索栏搜索 maven,将 Maven 的信息进行配置。配置的内容包括:
- Maven home directory:Maven 安装路径
- User settings file:settings.xml 文件位置
- Local repository:本地仓库位置,用来存储下载的依赖(主要为 Jar 包的形式)
4、Eclipse 安装与配置
1.下载 Eclipse 安装包并安装,下载地址:
https://www.eclipse.org/downloads/packages/
点击适合自己版本的下载链接,并点击。
2.下载 Eclipse安装后,启动安装,点击【Eclipse IDE for Java Developers】:
3.自定义安装位置后,点击【INSTALL】:
4.安装成功后,初次启动 Eclipse 需要指定项目空间,用于存放开发的项目,点击【Launch】。
5.点击菜单栏内 Window 下的 Preferences。
6.在 Preferences 列表中找到 Maven > User Settings,确认 Maven 的配置信息。
任务2 API 项目开发与本地仓库安装
【任务目标】
通过练习 hello-api 项目的编写,让学员掌握如何在 IntelliJ IDEA 中创建一个 Maven 项目,并了解 Maven install 功能的基本使用。
【任务步骤】
1、IntelliJ IDEA 中创建项目
1.启动 IntelliJ IDEA 后,点击 Create New Project。
2.选择项目类型为 Maven,点击【Next】:
3.GroupId为:com.test;ArtifactId为:hello-api,点击【Next】(窗口可能因 IDEA 版本不同而改变);
4.Project name 为:hello-api,点击【Finish】;
项目创建成功后配置 Maven 的 pom.xml,添加 lombok 依赖;
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>hello-api</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
</dependency>
</dependencies>
</project>
点击导入或自动导入,点击 Import Changes(手动导入更改) 或 Enable Auto-Import(启动自动导入),开始下载依赖并导入项目。(此处建议每次更改 POM 文件后手动点击 Import Changes)
2、开发Student类
1.创建 package com.test.hello,需要在 src-main-java 右键,选择【new】-【package】创建。并在 package 内创建 Student 类。
2.创建一个简单的Student类并设计三个私有属性:name、gender 和 age。使用 lombok 注解,给 Student 类快速增加构造函数,Getter/Setter 方法以及 ToString 方法。Student 类代码编写如下:
package com.test.hello;
import lombok.*;
@AllArgsConstructor
@NoArgsConstructor
@Setter
@Getter
@ToString
public class Student {
private String name;
private String gender;
private int age;
}
3、项目安装到本地仓库
1.点击 IDEA 右侧 Maven 栏,点击项目 hello-api 中的 Lifecycle,双击 install 开始执行Maven生命周期的安装。
2.当控制台运行并提示 BUILD SUCCESS时,表示安装成功。
3.在 Maven 本地仓库 /com/test/hello-api 目录下,可以查看到项目已经含有 jar 包,说明项目安装成功。
任务3 执行程序开发与打包
【任务目标】
通过练习hello-project项目的开发与打包,让学员掌握如何在Eclipse中编写及打包Maven工程。
【任务步骤】
1、Eclipse中创建项目
1.启动Eclipse,选择一个Workspace后点击【Launch】;
2.点击菜单栏 File->New ->Maven Project,创建一个 Maven 项目;
勾选 Create a simple project,确认好 Location 后,点击【Next】;
2.项目信息填写如下,点击【Finish】。
项目信息 | 填写内容 |
---|---|
Group Id | com.test |
Artifact Id | hello-project |
Name | hello-project |
2、编写程序
1.编辑 pom.xml,将上一步任务安装的 hello-api 以 dependency(依赖)的形式进行导入,并添加 Maven 插件 maven-shade-plugin,这个插件可以帮助我们打包一个包含项目依赖的jar包。pom.xml编辑内容如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>hello-project</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>hello-project</name>
<dependencies>
<dependency>
<groupId>com.test</groupId>
<artifactId>hello-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<!-- 指定主类 -->
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.test.hello.HelloDemo</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
2.右键点击src/main/java 选择 New > Package,创建一个包 com.test.hello。
3.右键点击包名,New > Class,创建一个 HelloDemo 类。创建完成后目录显示如下:
4.编写 HelloDemo,代码如下:
package com.test.hello;
public class HelloDemo {
public static void main(String[] args) {
Student student = new Student();
student.setName(args[0]);
student.setGender(args[1]);
student.setAge(Integer.parseInt(args[2]));
System.out.println(student);
}
}
代码说明:代码使用 hello-api 内的 Student 类创建一个 student 对象,并将 main 函数接收的参数,依次作为 student 的属性。最后将 student 对象的信息进行打印。
3、项目打包
1.代码编写确认后,我们使用 Maven 对程序生成jar包。
右键点击 hello-project 项目,点击Run As-> Maven install。
打包(安装声明周期包含打包)运行结果大致如下,其中我们看到 BUILD SUCCESS 时,表示构建成功:
2.打包成功后,我们可以在该模块目录的 target 文件夹下,查看到已有 jar 包。将 jar 包 hello-project-0.0.1-SNAPSHOT.jar 移至 D 盘等待上传云服务器。
任务4 程序云上部署
【任务目标】
通过实现云上部署运行 hello-project-0.0.1-SNAPSHOT.jar 程序,掌握云服务器的基本使用,以及腾讯 Kona 的基本安装与配置。
【任务步骤】
1、购买腾讯云服务器
1.在腾讯云官网找到云服务器CVM页面,点击【立即选购】。
2.首先在选择机型页面,机型配置如下。
配置项 | 内容 |
---|---|
计费模式 | 按量计费或竞价实例 |
地域 | 广州 |
可用区 | 广州四区 |
网络 | 新建或使用已有VPC |
实例 | 标准型S5.SMALL2 1核2GB |
镜像 | 公共镜像 CentOS 7.6 64位 |
系统盘 | 高性能云硬盘 50GB |
公网带宽 | 免费分配独立公网IP,按使用流量 |
确认无误后,点击【下一步:设置主机】。
3.设置主机页面,配置如下:
配置项 | 内容 |
---|---|
安全组 | 使用默认安全组或新建安全组并开通22端口 |
实例名称 | cvm-test |
登陆方式 | 设置密码(学员可根据自己习惯选择) |
确认无误后,点击【下一步:确认配置信息】。
服务器信息如下图所示:
4.点击【开通】,会按配置创建 CVM,页面自动跳转到实例页。
5.复制集群页的公网 IP,打开 PuTTY 创建连接,将复制的公网IP粘贴至 Host Name,端口(Port)默认22,如图:
6.点击【Open】,第一次连接会弹出安全警告,点击【是(Y)】。
7.接下在 login as:后填写用户名为 root,密码为购买 CVM 的时候设置的密码:
备注:这里只能使用 root 用户进行连接。
2、安装腾讯 Kona
1.切换目录至 /opt;
cd /opt
下载腾讯 Kona (如版本更改参考链接:https://cloud.tencent.com/document/product/1149/38537):
wget https://konajdk-1257356411.cos.ap-guangzhou.myqcloud.com/RELEASE/KonaJDK-8.0.0-232.x86_64.tar.gz
2.解压压缩包
tar zxf KonaJDK-8.0.0-232.x86_64.tar.gz
3.设置 JAVA_HOME
编辑/etc/profile:
vim /etc/profile
在下方添加内容:
export JAVA_HOME=/opt/KonaJDK-8.0.0-232
export PATH=${JAVA_HOME}/bin:$PATH
export CLASSPATH=.:${JAVA_HOME}/lib
确认无误后保存并退出:
4.使用 source 命令,对环境变量的设置生效;
source /etc/profile
验证,返回可执行文件 java 的位置;
which java
3、运行jar包
1.使用 mkdir 命令创建一个 /test 目录。
创建文件夹test;
mkdir /test
切换到 test 路径下;
cd /test
2.找到 PuTTY 的安装目录,在上方地址栏输入 cmd 并执行,打开 CMD 黑窗口。
3.在弹出的黑窗口中首先输入 psftp,点击回车键打开 psftp 传输工具,使用命令进行文件传输:
psftp
接下来连接服务器,回车后需要输入用户名和密码;
open xxx.xxx.xxx.xxx
用于切换远程Linux 服务器上的目录;
cd /test/
lcd命令用于切换本地的路径;
lcd D:\
上传文件;
put hello-project-0.0.1-SNAPSHOT.jar
命令使用可以参考下图:
上传成功后在 Master 节点的/test目录查看到上传的 jar 包。
4.在 jar 包上传成功过后,我们使用命令对程序启动运行。命令如下:我们传入三个参数:”xiaoming“,”male“,19。
java -jar hello-project-0.0.1-SNAPSHOT.jar xiaoming male 19
运行结果如下,可见程序运行成功,程序可以使用hello-api内的Student类创建一个学生对象,并接收到参数,并最终将对象的信息打印到控制台。
至此,您已完成了实验的全部任务。相信您对 Maven 项目的开发与云上部署已经有了基本掌握。
5. 注意事项
如实验资源无需保留,请在实验结束后及时销毁,以免产生额外费用。
6. Q&A
【问题1】在 IDEA 中右键 src-main-java 无法创建 package。
【解决】需要将 src-main-java 设置为 source root 后,才会出现【new】-【package】,否则不会出现。设置 source root 方法如下:
【问题2】项目打包操作过程中,出现 Build Failed。
【解决】在 IDEA 或 eclipse 打包操作过程中,若出现 Build Failed,或报错“不再支持源选项x,请使用xx或更高版本”,请参考:https://cloud.tencent.com/developer/article/1587537
学员评价