在Ubuntu 19.04/18.04/16.04和Debian 9上安装最新的Apache Maven

时间:2020-02-23 14:32:59  来源:igfitidea点击:

Apache Maven是一种软件项目管理/自动化工具,主要用于管理Java项目的构建,报告和信息从中央信息。
本教程将在Ubuntu 19.04/18.04/16.04和Debian 9上安装Apache Maven。

第1步:更新系统和安装Java

Apache Maven要求主机系统拥有Java开发套件。
在Ubuntu/Debian上安装OpenJDK。

sudo apt update
sudo apt install -y default-jdk

使用以下内容查看已安装的Java版本:

java -version

第2步:下载和安装Apache Maven

检查Apache Maven的最新版本并将其保存到变量:

export VER="3.6.1"

下载上面导出的最新版本Apache Maven:

wget http://www-eu.apache.org/dist/maven/maven-3/${VER}/binaries/apache-maven-${VER}-bin.tar.gz

现在提取下载的tar包

tar xvf apache-maven-${VER}-bin.tar.gz

将结果目录移动到 /opt

sudo mv apache-maven-${VER} /opt/maven

设置环境变量加载Apache Maven

cat <<EOF | sudo tee /etc/profile.d/maven.sh
export MAVEN_HOME=/opt/maven
export PATH=$PATH:$MAVEN_HOME/bin
EOF

来源文件

$source /etc/profile.d/maven.sh
$echo $MAVEN_HOME
/opt/maven
$echo $PATH

你的 $PATH应该有 /opt/maven/bin在最后。

第3步:验证安装

最后,验证Apache Maven已正确安装:

$mvn --version
Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-04T12:00:29-07:00)
Maven home: /opt/maven
Java version: 11.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-46-generic", arch: "amd64", family: "unix"

此命令应打印Maven版本并使用Java版本。

所有选项可供选择:

$mvn -h

创建Maven Projects目录:

mkdir ~/mvn-projects
cd ~/mvn-projects

创建第一个项目:

mvn archetype:generate -DgroupId=com.mycompany.app \
-DartifactId=my-app \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DinteractiveMode=false

由于这是第一次运行,因此可能需要一段时间才能执行。
这是因为Maven正在将最新的工件(插件jar和其他文件)下载到本地存储库中。

在成功运行时,我们应该获取类似于以下的

INFO] ---------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.0
[INFO] ---------------------------------------------------------------------------
[INFO] Parameter: basedir, Value: /root/projects
[INFO] Parameter: package, Value: com.mycompany.app
[INFO] Parameter: groupId, Value: com.mycompany.app
[INFO] Parameter: artifactId, Value: my-app
[INFO] Parameter: packageName, Value: com.mycompany.app
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: /root/projects/my-app
[INFO] -----------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] -----------------------------------------------------------------------
[INFO] Total time:  15.301 s
[INFO] Finished at: 2016-11-18T02:26:08-05:00
[INFO] -----------------------------------------------------------------------

generate goal创建具有与ARIFACTID给出的相同名称的目录。

$tree my-app/
my-app/
├── pom.xml
└── src
    ├── main
    │   └── java
    │       └── com
    │           └── mycompany
    │               └── app
    │                   └── App.java
    └── test
        └── java
            └── com
                └── mycompany
                    └── app
                        └── AppTest.java
11 directories, 3 files

src/main/java目录包含项目源代码 src/test/java目录包含Test Sourcethe文件 pom.xml是项目的项目对象模型(POM)。

文件 pom.xml是在Maven项目配置的核心。
它包含构建项目所需的大多数信息。

建立项目

要构建项目,请运行:

mvn package

命令行将打印出各种操作,并以下列方式结束:

.....
[INFO] -----------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] -----------------------------------------------------------------------
[INFO] Total time: 3 seconds
[INFO] Finished at: Thu Nov 18 10:39:20 EAT 2016
[INFO] Final Memory: 2M/6M
[INFO] -----------------------------------------------------------------------