华为云之在Linux下使用Maven打包Java项目实践【玩转华为云】

举报
江湖有缘 发表于 2024/07/10 22:47:49 2024/07/10
【摘要】 华为云之在Linux下使用Maven打包Java项目实践【玩转华为云】

一、本次实践介绍

1.1 实践环境简介

1.本次实践环境使用华为KooLabs云实验平台。
2.本次实践基于华为云ECS弹性云服务器。
3.在ECS云服务器上使用Maven打包Java项目。

1.3 本次实践完成目标

  • 熟悉华为云ECS服务器
  • 熟练使用Linux系统环境
  • 学会使用Maven打包Java项目

二、 相关服务介绍

2.1 华为云ECS云服务器介绍

弹性云服务器(Elastic Cloud Server, ECS)是一种云上可随时自助获取、可弹性伸缩的计算服务,可帮助您打造安全、可靠、灵活、高效的应用环境。

image.png

2.2 java介绍

Java是一种高级、通用、面向对象的编程语言。它由Sun Microsystems公司于1995年推出,并且现在由Oracle维护和支持。Java的设计目标是让开发者能够编写一次代码,然后在多个平台上运行,这也被称为“一次编写,到处运行”的原则。这个特点使得Java非常受欢迎,并成为了企业级应用开发的首选语言之一。Java语言具有简单、稳定、可移植、面向对象、安全等特点。它的语法和C语言类似,但相对更简洁和易于理解。Java程序在运行时被编译成字节码,然后在Java虚拟机(JVM)上运行。这使得Java程序可以在任何具有适当JVM的操作系统上运行,大大提高了其可移植性和跨平台性。

2.3 Maven介绍

Maven是一个Java项目管理和构建工具。它提供了一个统一的项目结构,可以将项目组织成一个标准化的形式,并提供了自动化的构建和依赖管理功能。Maven使用一个称为POM(Project Object Model)的XML文件来描述项目的配置信息。POM文件定义了项目的依赖关系、构建目标和插件配置等信息。使用Maven,我们可以简化项目的构建过程,只需要在POM文件中声明项目所需要的依赖,Maven就会自动下载并安装这些依赖,并对项目进行构建。

三、环境准备工作

3.1 预置实验环境

1.开始实验之前请点击手册上方“预置实验环境”按钮。
2.实验环境约等待【2分钟】后预置成功。环境预置成功会自动创建一台名称为 ecs-name 的弹性云服务器 ECS。

在这里插入图片描述

3.2 查看预置环境信息

预置成功后ECS资源用户、密码信息可点击预置环境信息查看。

在这里插入图片描述

四、登录华为云

4.1 登录华为云

进入【实验操作桌面】,打开Chrome浏览器,首次可自动登录并进入华为云控制台页面。

在这里插入图片描述

登录完毕后,进入华为云控制台管理首页。

在这里插入图片描述

4.2 查看ECS状态

在华为云的首页服务列表中,点击“弹性云服务器ECS”,进入ECS云服务器管理页面。

在这里插入图片描述

在ECS管理页面,我们看到系统已经为我们创建了一台ECS弹性云服务器,名称为ecs-name。

在这里插入图片描述

4.3 连接ECS弹性云服务器

在实验桌面,打开xfce终端,将ECS的弹性公网IP地址替换即可。

ssh root@ECS弹性公网IP地址

在这里插入图片描述

4.4 检查操作系统版本

检查当前系统版本,当前默认安装使用的是Centos7版本。

[root@ecs-name ~]# cat /etc/os-release 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"


五、开发环境配置工作

5.1 安装java

直接使用yum安装java

yum -y install java-1.8.0-openjdk-devel

在这里插入图片描述

5.2 下载Maven

执行以下命令,快速下载Maven软件包。

cd /home && wget https://sandbox-expriment-files.obs.cn-north-1.myhuaweicloud.com/2493/apache-maven-3.5.4-bin.tar.gz

在这里插入图片描述

  • 解压压缩包并将文件夹移动至 /usr/local/ 目录
tar xzvf apache-maven-3.5.4-bin.tar.gz && mv apache-maven-3.5.4 /usr/local/apache-maven

在这里插入图片描述

5.3 配置环境变量

  • 编辑 /etc/profile 文件
vim /etc/profile
  • 点击i键进入编辑模式,在最下方添加如下内容
MAVEN_HOME=/usr/local/apache-maven
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin

在这里插入图片描述

  • 使环境变量生效
source /etc/profile

5.4 检查maven版本

检查 Maven 是否成功安装,查看maven版本。

[root@ecs-name home]# mvn -version
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: /usr/local/apache-maven
Java version: 1.8.0_412, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.412.b08-1.el7_9.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.108.1.el7.x86_64", arch: "amd64", family: "unix"
[root@ecs-name home]# 

在这里插入图片描述

六、打包Java项目

6.1 创建目录

首先我们先创建一个简单的 java 项目,供 maven 构建。在 /home 下创建以下子目录结构。

mkdir -p /home/src/main/java/hello
[root@ecs-name home]# tree /home/src/
/home/src/
\u2514\u2500\u2500 main
    \u2514\u2500\u2500 java
        \u2514\u2500\u2500 hello

3 directories, 0 files

在这里插入图片描述

6.2 编辑相关文件

在/home/src/main/java/hello目录下,新建两个基础类HelloWorld.java和Greeter.java。

vim /home/src/main/java/hello/HelloWorld.java
package hello;

public class HelloWorld {
    public static void main(String[] args) {
        Greeter greeter = new Greeter();
        System.out.println(greeter.sayHello());
    }
}

在这里插入图片描述

vim /home/src/main/java/hello/Greeter.java
package hello;

public class Greeter {
    public String sayHello() {
        return "Hello world!";
    }
}

在这里插入图片描述

6.3 编辑pom.xml 文件

Maven 项目是使用名为 pom.xml 的 XML 文件定义的。除其他外,此文件提供了项目的名称,版本和对外部库的依赖关系。所以,在项目的根目录下,即/home下创建一个名为 pom.xml 的文件:

vim /home/pom.xml
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.springframework</groupId>
    <artifactId>gs-maven</artifactId>
    <packaging>jar</packaging>
    <version>0.1.0</version>

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>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>hello.HelloWorld</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

在这里插入图片描述

6.4 执行编译

执行编译,因为mvn编译需要从中央仓库拉取较多文件,故编译会比较缓慢,请耐心等待3分钟左右。

mvn compile

在这里插入图片描述

此时重新进入 hello 项目所在的 home 文件夹,将看到已生成了 target 目录。

cd /home
ls

6.5执行打包操作

通过 package 指令来执行打包操作,注意:因为mvn打包需要从中央仓库拉取较多文件,故打包会比较缓慢,请耐心等待3分钟左右。

mvn package

在这里插入图片描述

重新打开 /home/target 目录,可看到生成了 .jar 文件。

[root@ecs-name home]# ls /home/target/
classes  generated-sources  gs-maven-0.1.0.jar  maven-archiver  maven-status  original-gs-maven-0.1.0.jar

七、运行java项目

运行已经打包好的的.jar文件,看到如下面显示的内容,则本次实践成功。

[root@ecs-name home]# java -jar target/gs-maven-0.1.0.jar
Hello world!
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。