如何在 Debian 9 上安装 Apache Maven

2023-11-12

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

在本教程中,我们将向您展示在 Debian 9 上安装 Apache Maven 的两种不同方法。

官方 Debian 存储库包含 Maven 软件包,可以使用apt包管理器。这是在 Debian 上安装 Maven 的最简单方法。然而,存储库中包含的版本始终比最新版本的 Maven 落后几个版本。

要安装最新版本的 Maven,请按照本文第二部分中提供的说明进行操作。

选择最适合您的安装方法之一。

先决条件#

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

使用 Apt 在 Debian 上安装 Apache Maven#

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

  1. 首先,更新包索引:

    sudo apt update
  2. 通过运行以下命令安装 Maven:

    sudo apt install maven
  3. 通过键入以下内容验证安装:

    mvn -version

    输出应如下所示:

    Apache Maven 3.3.9
    Maven home: /usr/share/maven
    Java version: 1.8.0_181, vendor: Oracle Corporation
    Java home: /usr/lib/jvm/java-8-openjdk-amd64/jre
    Default locale: en_US, platform encoding: UTF-8
    OS name: "linux", version: "4.9.0-8-amd64", arch: "amd64", family: "unix"

就是这样。 Maven 现已安装在您的 Debian 系统上。

安装最新版本的 Apache Maven#

以下部分提供了在 Debian 9 上安装最新 Apache Maven 版本的详细信息。我们将从官方供应商网站下载最新版本的 Apache Maven。

1.安装OpenJDK#

Maven 3.3+ 需要在系统上安装 JDK 1.7 或更高版本。出色地安装 OpenJDK,这是 Debian 9 中默认的 Java 开发和运行时。

首先更新包索引:

sudo apt update

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

sudo apt install default-jdk

通过检查 Java 版本来验证 Java 安装:

java -version

输出应如下所示:

openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-2~deb9u1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, 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: 1.8.0_181, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-8-openjdk-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.9.0-8-amd64", arch: "amd64", family: "unix"

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

结论#

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

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

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

如何在 Debian 9 上安装 Apache Maven 的相关文章

  • .properties 中的通配符

    是否存在任何方法 我可以将通配符添加到属性文件中 并且具有所有含义 例如a b c d lalalala 或为所有以结尾的内容设置一个正则表达式a b c anything 普通的 Java 属性文件无法处理这个问题 不 请记住 它实际上是
  • 为 java 游戏创建交互式 GUI

    大家好 我正在创建一个类似于 java 中的 farmville 的游戏 我只是想知道如何实现用户通常单击以与游戏客户端交互的交互式对象 按钮 我不想使用 swing 库 通用 Windows 看起来像对象 我想为我的按钮导入自定义图像 并
  • 构建/部署 EJB .jar 及其依赖项

    我是 Java EE 新手 我使用 Maven Eclipse 和 jBoss WildFly 我有一个war项目 当我构建项目时 它的所有依赖项都打包在war文件输入WEB INF lib 现在我正在尝试创建一个ejb项目 我有
  • Pig Udf 显示结果

    我是 Pig 的新手 我用 Java 编写了一个 udf 并且包含了一个 System out println 其中的声明 我必须知道在 Pig 中运行时该语句在哪里打印 假设你的UDF 扩展了 EvalFunc 您可以使用从返回的 Log
  • 如何在 Spring 中禁用使用 @Component 注释创建 bean?

    我的项目中有一些用于重构逻辑的通用接口 它看起来大约是这样的 public interface RefactorAwareEntryPoint default boolean doRefactor if EventLogService wa
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • Java 公历日历更改时区

    我正在尝试设置 HOUR OF DAY 字段并更改 GregorianCalendar 日期对象的时区 GregorianCalendar date new GregorianCalendar TimeZone getTimeZone GM
  • 将流转换为 IntStream

    我有一种感觉 我在这里错过了一些东西 我发现自己做了以下事情 private static int getHighestValue Map
  • java.lang.IllegalStateException:提交响应后无法调用 sendRedirect()

    这两天我一直在尝试找出问题所在 我在这里读到我应该在代码中添加一个返回 我做到了 但我仍然得到 java lang IllegalStateException Cannot call sendRedirect after the respo
  • 如何访问JAR文件中的Maven资源? [复制]

    这个问题在这里已经有答案了 我有一个使用 Maven 构建的 Java 应用程序 我有一个资源文件夹com pkg resources 我需要从中访问文件 例如directory txt 我一直在查看各种教程和其他答案 但似乎没有一个对我有
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • java for windows 中的文件图标叠加

    我正在尝试像 Tortoise SVN 或 Dropbox 一样在文件和文件夹上实现图标叠加 我在网上查了很多资料 但没有找到Java的解决方案 Can anyone help me with this 很抱歉确认您的担忧 但这无法在 Ja
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • 找不到符号 NOTIFICATION_SERVICE?

    package com test app import android app Notification import android app NotificationManager import android app PendingIn
  • 在java中为组合框分配键

    我想添加一个JComboBox在 Swing 中这很简单 但我想为组合中的每个项目分配值 我有以下代码 JComboBox jc1 new JComboBox jc1 addItem a jc1 addItem b jc1 addItem
  • 如何将双精度/浮点四舍五入为二进制精度?

    我正在编写对浮点数执行计算的代码的测试 不出所料 结果很少是准确的 我想在计算结果和预期结果之间设置一个容差 我已经证实 在实践中 使用双精度 在对最后两位有效小数进行四舍五入后 结果始终是正确的 但是usually四舍五入最后一位小数后
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐

  • 如何在 Ubuntu 18.04 和 16.04 LTS 上安装 Erlang

    Erlang是一种编程语言 用于构建具有高可用性要求的大规模可扩展的软实时系统 Erlang运行时系统内置了对并发 分布式和容错的支持 本教程将帮助您使用 PPA 在 Ubuntu 18 04 和 16 04 上安装 Erlang 第 1
  • 20 个 DevOps 面试问题和答案

    DevOps 已成为现代企业软件开发和部署的重要实践 DevOps 强调开发和运营团队之间的协作 沟通和持续改进 以快速可靠地交付软件变更 在本文中 我们讨论了 20 个常见的 DevOps 面试问题和答案 以帮助您为下一次面试做好准备 您
  • 如何在 Ubuntu 18.04 和 16.04 上安装 FFmpeg

    FFmpeg是用于流式传输音频和视频以及录制和转换的跨平台解决方案 在各种格式之间转换多媒体文件也很有用 FFmpeg 中包含 libavcodec 音频 视频编解码器库 本教程将帮助您通过简单的步骤在 Ubuntu 18 04 LTS 和
  • 用于扫描端口范围的 Bash 脚本

    网络管理员和安全专家经常需要扫描端口来识别开放或封闭的服务并评估其网络的安全性 虽然有 nmap 等强大的工具可用于此目的 但有时您可能需要创建适合您的特定要求的自定义解决方案 在本文中 我们将讨论如何创建用于扫描一系列端口的 Bash 脚
  • pg_restore:[存档器]输入文件似乎不是有效的存档

    如果您在 postgresql 中恢复数据库备份时遇到上述错误 此错误意味着您已以纯文本格式进行备份 Error pg restore archiver input file does not appear to be a valid ar
  • 前 5 名诊断和维护软件工具

    您可以在计算机上安装出色的软件 并且可以非常小心地访问 Internet 上的站点 但是您最终仍不可避免地会遇到软件和 或硬件的一些问题 发生这种情况时 您可以让专业人士追踪问题的根源并解决它 但在您花钱之前 请检查一些优秀的诊断和维护工具
  • 如何在 CentOS 8 上安装 PostgreSQL 服务器

    PostgreSQL是一个对象关系数据库管理系统 以表的形式存储数据 它高度安全可靠 可以轻松存储 访问和检索数据 The pgAdmin是一个功能丰富的基于 Web 的界面 用于 PostgreSQL 的管理 开发和管理 它也是一个开源
  • 什么是毕达哥拉斯定理?

    毕达哥拉斯定理以古希腊数学家毕达哥拉斯的名字命名 是欧几里得几何学的基本原理 该定理在数学和物理学的多个分支中发挥着关键作用 为距离计算 矢量代数和三角学等奠定了基础 毕达哥拉斯定理 公式 毕达哥拉斯定理适用于直角三角形 角为90度 2 弧
  • 如何在Python中连接MySQL

    数据库是任何数据驱动的应用程序或系统的支柱 它们提供了一种组织 检索 更新和操作数据的系统方法 MySQL 是世界上最流行的数据库之一 广泛用于 Web 应用程序和嵌入式数据库系统 另一方面 Python 是最通用且使用最广泛的编程语言之一
  • 如何检查 Angular 版本(应用程序+CLI)

    Angular 是一种流行的 Web 应用程序开发框架 被全球开发人员广泛使用 该框架不断发展 每个版本中都会添加新的特性和功能 作为开发人员 必须跟上 Angular 的最新版本 以确保您的应用程序使用最新功能 并及时了解任何安全修复或错
  • 在 Node.js 中配置 MySQL 连接池的分步指南

    MySQL 是一种广泛使用的开源关系数据库管理系统 RDBMS 用于各种 Web 应用程序 另一方面 Node js 是一种流行的运行时环境 用于在服务器端执行 JavaScript 代码 使用 Node js 和 MySQL 开发 Web
  • 如何在 Apache 中启用服务器端包含 (SSI)

    服务器端包含 SSI 是一种简单的解释型服务器端脚本语言 几乎专门用于 Web 它用于通过在网页中包含 指令 来管理网络内容 这些 指令 由网络服务器解析和执行 例如 它们可以允许将一个或多个文件的内容包含到网络服务器上的网页中 或者显示当
  • 如何在 CentOS / RHEL / Fedora 上安装 Symfony 2 框架

    Symfony 是一个用 PHP 编写的 Web 应用程序框架 它提供了一组可重用的 PHP 组件 Symfony 2 8 是 Symfony 2 框架系列中当前可用的稳定版本 Symfony 为您的应用程序提供 30 个独立组件 本教程将
  • 如何在 Ubuntu 16.04 上安装 Zend 框架

    Zend框架3 是可用于创建应用程序的最新版本 最新版本提供了比以前版本更快的应用程序 Zend 是一个用于开发 Web 应用程序和服务的开源框架 它使用 100 面向对象的代码 本教程将帮助您在 Ubuntu 16 04 LTS 系统上安
  • 如何使用 DNF 从 Fedora 22 升级到 Fedora 23

    软呢帽23已发布并可供下载和安装 本文将帮助您使用以下命令从 Fedora 22 升级到 Fedora 23DNF yum 的替代 命令行实用程序 检查 Fedora 版本 使用以下命令之一检查您当前的 Fedora 系统版本 Fedora
  • 如何创建具有授予权限的新 MySQL 用户

    MySQL 是一个关系数据库管理系统 用于以表格格式存储数据 它为用户帐户和授予权限提供了高度的灵活性 本教程将为您提供创建 MySQL 用户帐户和授予数据库权限的简短概述 创建具有权限的MySQL用户 在这里 我们以对所有数据库拥有完全权
  • 通过贸易展览曝光促进您的业务

    中小企业是每个经济体的支柱 由于多种原因 每个州都应该鼓励和支持此类小公司 首先 这些企业对市场变化和供需失衡的反应速度相当快 其次 中小型企业通常具有社区联系紧密的特点 员工之间相互了解 从而产生更强烈的团结感 所有这些特点都意味着这类业
  • 如何列出 Ubuntu 上已安装的软件包

    在本教程中 我们将向您展示如何列出和过滤 Ubuntu 上已安装的软件包 当您需要在另一台计算机上安装相同的软件包或想要重新安装系统时 了解如何列出 Ubuntu 系统上已安装的软件包会很有帮助 我们还将向您展示如何检查是否安装了特定的软件
  • 如何提取(解压缩)tar.xz 文件

    The tar命令允许您创建和提取 tar 档案 它支持多种压缩程序 例如 gzip bzip2 lzip lzma lzop xz 和 compress Xz是一种基于LZMA算法的流行的文件压缩算法 按照约定 压缩后的 tar 存档的名
  • 如何在 Debian 9 上安装 Apache Maven

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