如何在 Ubuntu 18.04 上安装 Apache Maven

2023-10-27

Apache Maven 是一个免费的开源项目管理和理解工具,主要用于 Java 项目。 Maven 使用项目对象模型 (POM),它本质上是一个 XML 文件,其中包含有关项目、配置详细信息、项目依赖项等的信息。

在本教程中,我们将向您展示在 Ubuntu 18.04 上安装 Apache Maven 的两种不同方法。相同的说明适用于 Ubuntu 16.04 和任何基于 Ubuntu 的发行版,包括 Linux Mint、Kubuntu 和 Elementary OS。

官方 Ubuntu 存储库包含可以使用以下命令安装的 Maven 软件包apt包管理器。这是在 Ubuntu 上安装 Maven 最简单的方法。然而,存储库中包含的版本可能落后于最新版本的 Maven。

要安装最新版本的 Maven,请按照本文第二部分中提供的说明进行操作,我们将从其官方网站下载 Maven。

选择最适合您的环境的安装方法。

先决条件#

为了能够在 Ubuntu 系统上安装软件包,您必须以具有 sudo 权限的用户 .

使用 Apt 在 Ubuntu 上安装 Apache Maven#

使用以下命令在 Ubuntu 上安装 Mavenapt是一个简单、直接的过程。

  1. 首先更新包索引:

    sudo apt update
  2. 接下来,输入以下命令来安装 Maven:

    sudo apt install maven
  3. 通过运行以下命令验证安装mvn -version命令:

    mvn -version

    输出应如下所示:

    Apache Maven 3.5.2
    Maven home: /usr/share/maven
    Java version: 10.0.2, vendor: Oracle Corporation
    Java home: /usr/lib/jvm/java-11-openjdk-amd64
    Default locale: en_US, platform encoding: ISO-8859-1
    OS name: "linux", version: "4.15.0-36-generic", arch: "amd64", family: "unix"

就是这样。 Maven 现在已安装在您的系统上,您可以开始使用它。

安装最新版本的 Apache Maven#

以下部分提供有关如何在 Ubuntu 18.04 上安装最新 Apache Maven 版本的分步说明。我们将从 Apache Maven 的官方网站下载最新版本。

1.安装OpenJDK#

Maven 3.3+ 需要安装 JDK 1.7 或更高版本。我们将安装 OpenJDK,它是 Ubuntu 18.04 中默认的 Java 开发和运行时。

The Java的安装很简单。首先更新包索引:

sudo apt update

通过键入以下内容安装 OpenJDK 包:

sudo apt install default-jdk

通过运行以下命令验证安装:

java -version

输出应如下所示:

openjdk version "10.0.2" 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.2)
OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.2, mixed mode)

2.下载Apache Maven#

在撰写本文时,Apache Maven 的最新版本是3.6.0。在继续下一步之前,请检查Maven下载页面查看是否有新版本可用。

首先下载 Apache Maven/tmp使用以下目录wget命令:

wget https://www-us.apache.org/dist/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz -P /tmp

下载完成后,提取存档 in the /opt目录:

sudo tar xf /tmp/apache-maven-*.tar.gz -C /opt

为了更好地控制 Maven 版本和更新,我们将创建符号链接 maven这将指向 Maven 安装目录:

sudo ln -s /opt/apache-maven-3.6.0 /opt/maven

稍后,如果您想升级 Maven 安装,您只需解压缩新版本并更改符号链接以指向最新版本。

3.设置环境变量#

接下来,我们需要设置环境变量。为此,请打开您的文本编辑器并创建一个名为的新文件maven.sh里面的/etc/profile.d/目录。

sudo nano /etc/profile.d/maven.sh

粘贴以下配置:

/etc/profile.d/maven.sh
export JAVA_HOME=/usr/lib/jvm/default-java
export M2_HOME=/opt/maven
export MAVEN_HOME=/opt/maven
export PATH=${M2_HOME}/bin:${PATH}

保存并关闭文件。该脚本将在 shell 启动时获取。

使脚本可执行chmod :

sudo chmod +x /etc/profile.d/maven.sh

最后使用加载环境变量source命令:

source /etc/profile.d/maven.sh

4. 验证安装#

要验证 Maven 是否已正确安装,请使用mvn -version将打印 Maven 版本的命令:

mvn -version

您应该看到类似以下内容:

Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T18:41:47Z)
Maven home: /opt/maven
Java version: 10.0.2, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: en_US, platform encoding: ISO-8859-1
OS name: "linux", version: "4.15.0-36-generic", arch: "amd64", family: "unix"

就是这样。最新版本的 Maven 现已安装在您的 Ubuntu 系统上。

结论#

您已在 Ubuntu 18.04 上成功安装 Apache Maven。您现在可以访问官方Apache Maven 文档页面并了解如何开始使用 Maven。

如果您遇到问题或有反馈,请在下面发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Ubuntu 18.04 上安装 Apache Maven 的相关文章

  • Windows 上的虚假唤醒。是否可以?

    我最近学习了 虚假唤醒 有人说这个问题只可能发生在某些类型的 Linux PC 上 我用的是窗户 我为虚假唤醒编写了测试 我得到的结果是这是可能的 但我想向您展示这个测试 也许我在某个地方犯了错误 我的初始变体 import java ut
  • 修复 java 内存泄漏的学习网站

    学习修复 java 内存泄漏的最佳地点是什么 我一直试图在网络上找到好的资源 但令我失望的是 我发现正在讨论玩具示例 我还能够对小型玩具转储进行故障排除 但现实世界的应用程序转储更具挑战性 并且提供的线索很少 我尝试过 Jhat JMap
  • java中如何围绕另一个移动对象旋转一个对象?

    我对 Java 很陌生 想要编写一个简单的太阳系统 其中月球绕地球旋转 地球绕太阳旋转 一切正常 除了月亮不想正确移动 由于地球偏离月球的初始位置 月球的自转半径会根据该距离而增大 同样 当地球接近月球惯性位置时 自转半径会减小 如果初始位
  • maven + eclipse + tomcat:类未找到异常

    我有一个使用 servlet 的简单 Web 应用程序 我将其创建为 Maven 项目 然后将其导入到 Eclipse 中 文件 gt 导入 gt 现有的 Maven 项目 战争已正确部署到 tomcat 7 但是 当我在 Eclipse
  • lombok - 多个镜头中的 @Builder 模式

    I use Builder of 龙目岛项目 https github com rzwitserloot lombok 所以考虑我有这个例子 Builder public class Client private Getter Setter
  • C# 中的 Culture 相当于 Java 中的 Locale 吗?

    C 使用文化的概念 这在操作上与 Java 中的 Locale 类似吗 或者底层概念是否存在显着差异 从文化而不是语言环境的角度进行工作是一种寻找正确抽象层次的尝试 从以类似方式做事的人群的角度来考虑事物 而不是谈论地理区域和语言 并有点疯
  • x.person 上的 @OneToOne 或 @ManyToOne 引用未知实体:y.Person - 继承问题

    我的 Hibernate 架构有问题 我有一个 MappedSuperClass 人员 一名员工和一名客户 gt Person class MappedSuperclass Audited public class Person exten
  • Android - Java - 发送 facebook 聊天消息的意图(facebook 禁用 xmpp)

    Facebook 已弃用 xmpp API 有没有办法打开意图 或将数据传递到fb 以在Android设备上发送聊天消息 设备上安装的 Facebook 和 Messenger 应用 谢谢 您需要将 uri 传递给意图 这里10000572
  • 带有 spring-kafka 的 Kafka 死信队列 (DLQ)

    最好的实施方式是什么死信队列 DLQ Spring Boot 2 0 应用程序中的概念 使用 spring kafka 2 1 x 来处理无法处理的所有消息 KafkaListener某些bean发送到某些预定义的Kafka DLQ主题的方
  • java.sql.SQLException: - ORA-01000: 超出最大打开游标数

    我收到 ORA 01000 SQL 异常 所以我有一些与之相关的疑问 最大打开游标是否与 JDBC 连接数完全相关 或者它们也与我们为单个连接创建的语句和结果集对象相关吗 我们正在使用连接池 有没有办法配置数据库中语句 结果集对象的数量 如
  • WSDL 表示中的枚举类型

    WSDL 表示如下
  • 如何提高 Guice 启动时的性能

    好吧 我知道我的计算不客观等等 但无论如何 我讨厌在执行单元测试时等待这么多时间 我的 guice swing 应用程序需要大约 7 秒来初始化 这是一个简单的 IRC 客户端 在那一刻 没有打开连接 我什至还没有调用任何 java io
  • 序言中不允许引用

    请帮我找到这个异常的原因 我使用以下罐子 core renderer jar itext paulo 155 jar 第一个文档 xhtml lt xml version 1 0 encoding UTF 8 gt lt DOCTYPE h
  • 如何迭代SparseArray?

    有没有办法迭代 Java SparseArray 适用于 Android 我用了sparsearray通过索引轻松获取值 我找不到 看来我找到了解决方案 我没有正确注意到keyAt index 功能 所以我会这样做 for int i 0
  • 在java中设置Process对象的安全性

    有人可以告诉我如何限制通过进程对象访问系统属性吗 如果我通过进程对象运行以下代码 我可以抛出安全异常吗 System getProperty user home 请告诉我如何为流程对象配置证券 在ProcessBuilder类文档中 环境方
  • 无法运行简单的 doclet 程序:包 com.sun.javadoc 不存在

    我正在尝试运行一个简单的 doclet 程序 但无法编译它 javac cp cygdrive c Progra 2 Java jdk1 8 0 65 lib tools jar A java 但它抛出 A java 1 错误 包 com
  • 用于将字符串与通配符模式进行匹配的递归函数

    所以我一整天都在试图解决这个作业 只是无法完成 以下函数接受 2 个字符串 第二个 不是第一个 可能包含 的 星号 An 是字符串的替换 空 1个字符或更多 它可以出现 仅在s2中 一次 两次 更多或根本不出现 它不能与另一个相邻 ab c
  • “设置:非法选项 -”在一台主机上,但在另一台主机上则不然

    我在我的一台 ubuntu 虚拟机中编写了一个 sh 脚本 该脚本工作正常 但是当我尝试在其他虚拟机中运行它时 它不起作用 两个虚拟机应该相同 和bash version两个虚拟机均回复 GNU bash version 4 3 11 1
  • 1° 夏令时 Java 和 JS 表现出不同的行为

    假设巴西利亚 GMT 0300 夏令时于 21 10 2012 00 00 00 此时时钟应提前一小时 Java new Date 2012 1900 9 21 0 0 0 Sun Oct 21 01 00 00 BRST 2012 Chr
  • gwt - 在 RPC 调用中使用 List

    我有一个 RPC 服务 方法如下 public List

随机推荐

  • 【第47篇】BoT-SORT:强大的关联多行人跟踪

    摘要 论文连接 https arxiv org pdf 2206 14651 pdf 多对象跟踪 MOT 的目标是检测和跟踪场景中的所有对象 同时为每个对象保留一个唯一标识符 在本文中 我们提出了一种新的鲁棒的最先进的跟踪器 它可以结合运动
  • 第三十三章续:用1 x 2的多米诺骨牌填满M x N的矩形有多少种方案

    题目描述 用1 x 2的多米诺骨牌填满M x N的矩形有多少种方案 M lt 5 N lt 2 31 输出答案mod p的结果 矩阵乘法 include
  • 渗透测试岗面试题汇总

    有些是网上整理的渗透测试岗 试问题 有些 HW 试的题 已经收集好了 提供给 家 现在就是毕业季节 希望各位都能找到好 作 还有一部分是根据回忆总结的 部分问题可能描述的有些问题 安全的体系很大 这些只是冰山一角而已 感兴趣的同学可以点击我
  • 如何在 Python 中验证电子邮件地址(使用正则表达式)

    验证电子邮件地址是确保您的应用程序仅接受格式正确的电子邮件地址的关键步骤 格式正确的电子邮件地址不仅可以确保正确的通信 还有助于防止垃圾邮件和安全风险 在本文中 我们将探讨如何在 Python 中使用正则表达式 regex 验证电子邮件地址
  • 每天凌晨 2:00 运行 Cron 作业

    Cron 作业 或 cron 作业 是告诉计算机在指定时间自动运行程序或执行命令的计划 这称为 cron 作业 是一个在后台运行并按计划执行任务的守护进程 Cron 是一个在后台运行并定期执行程序或任务的进程 从设计上来说 cron 非常灵
  • 如何在 CentOS 和 RedHat 上使用 MySQL 设置 Pure-FTPD

    纯FTPd是一个免费且安全的 FTP 服务器 它不提供无用的花哨功能 而是注重效率和易用性 它为常见需求提供简单的答案 并为个人用户和托管提供商提供独特的有用功能 本指南将帮助您使用 MySQL 作为用户数据库来设置 Pure FTPD 还
  • 什么是暴力攻击?以及企业的缓解策略

    在不断发展的网络安全世界中 了解各种类型的威胁是保护您自己或您的企业的第一步 一种常见但重大的威胁是暴力攻击 让我们深入了解什么是暴力攻击 它的工作原理及其影响 什么是暴力攻击 暴力攻击是一种试错法用于获取个人识别码 PIN 用户名 密码或
  • 全球连通性如何塑造现代娱乐

    20世纪50年代 几十年来被视为电视的黄金时代 人们没有想到电视剧的复兴 并迎来了另一个受欢迎的高峰 说实话 仅在十年前这似乎也是不可能的 然而如今 从挪威到印度尼西亚 每个人都有自己最喜欢的连续剧和电视节目列表 并且他们在全球范围内关注相
  • 如何在 CentOS/RHEL 8 上安装 Tomcat 9

    Apache Tomcat 9 是可用于安装 Tomcat Web 服务器的最新版本 Tomcat 是由 Apache 基金会开发的用于基于 Java 的应用程序的开源 Web 服务器 我们使用 Tomcat 来部署 Java Servle
  • 如何在 Apache 中启用缓存

    缓存是增强 Web 服务器性能的一个重要方面 因为它可以通过存储和提供频繁请求的数据来显着缩短响应时间 这不仅提高了网站的速度 还减少了服务器的负载 本文将引导您完成在 Apache HTTP Server 一种流行且强大的开源 Web 服
  • 如何在 CentOS 8 上使用 Apache 安装 phpMyAdmin

    当前的 phpMyAdmin 版本与 PHP 7 1 及更高版本以及 MySQL 5 5 及更高版本兼容 本教程将帮助您在 CentOS 8 Linux 系统上安装和配置 phpMyAdmin 第 1 步 先决条件 我们假设您已经安装了Ce
  • 如何在 Fedora 上安装 phpMyAdmin

    phpMyAdmin是一个流行的基于 Web 的客户端 用于管理 MySQL 服务器 phpMyAdmin 是用 PHP 编程语言编写的 它提供了一个用户友好的 Web 界面来访问和管理 MySQL 服务器和数据库 它允许您创建数据库和用户
  • 如何在 Ubuntu 上安装最新的 Node.js

    如果您一直在探索前端和 JavaScript 的世界 您可能已经遇到过 Node js 它是一个服务器端框架 使用 Google 的 V8 引擎来执行 JavaScript 代码 开发人员可以使用 Node js 因为它为他们提供了一种使用
  • 如何在 Windows 上安装 NVM

    NVM 节点版本管理器 是用于在系统上安装 Node js 的命令行实用程序 它允许我们安装多个 Node js 版本并在它们之间切换 这对于运行需要不同 2 个节点版本的多个节点应用程序的系统很有帮助 本教程将帮助您使用 NVM 在 Wi
  • 如何在 Linux Mint 上安装 Apache Solr 21/20

    Apache Solr 是一个基于 Java 构建的强大的开源搜索平台 它广泛用于索引 搜索和分析大量文本内容 在 Linux Mint 上安装它非常简单 在本指南中 我们将逐步完成在 Linux Mint 21 20 或 19 上安装并运
  • 如何在 Ubuntu 20.04 上安装 Nagios

    Nagios 是一个流行的开源监控系统 Nagios 保留整个 IT 基础设施的清单 并确保您的网络 服务器 应用程序 服务和流程正常运行 如果发生故障或性能不佳 Nagios 将通过各种方法发送通知警报 本文介绍如何在 Ubuntu 20
  • 如何在 Ubuntu 20.04 上设置或更改时区

    使用正确的时区对于许多与系统相关的任务和流程至关重要 例如 cron 守护进程使用系统的时区来执行 cron 作业 并且日志文件中的时间戳基于同一系统的时区 在 Ubuntu 上 系统的时区是在安装过程中设置的 但以后可以轻松更改 本文介绍
  • Linux 中的粘贴命令(合并行)

    paste是一个允许您水平合并文件行的命令 它输出由指定为参数的每个文件的顺序对应行组成的行 并用制表符分隔 在本教程中 我们将解释如何使用paste命令 如何使用paste命令 paste是鲜为人知且较少使用的 Linux 和 Unix
  • 如何在 CentOS 7 上安装 Memcached

    Memcached 是一个免费开源的高性能内存键值数据存储 它主要用作缓存系统 通过缓存数据库调用结果中的各种对象来加速应用程序 在本教程中 我们将解释如何在 CentOS 7 上安装和配置 Memcached 先决条件 在继续本教程之前
  • 如何在 Ubuntu 18.04 上安装 Apache Maven

    Apache Maven 是一个免费的开源项目管理和理解工具 主要用于 Java 项目 Maven 使用项目对象模型 POM 它本质上是一个 XML 文件 其中包含有关项目 配置详细信息 项目依赖项等的信息 在本教程中 我们将向您展示在 U