在CentOS 7和Fedora 30/29/28上安装最新的Apache Maven

时间:2020-02-23 14:31:19  来源:igfitidea点击:

Apache Maven是一个软件项目管理/自动化工具,主要用于管理来自中央信息的Java项目构建,报告和文档。本教程将在CentOS 7/Fedora 30/29/28上安装Apache Maven。

更新系统并安装Java

Apache Maven要求主机系统具有Java Development Kit。在CentOS 7/Fedora上安装OpenJDK:

在CentOS 7上安装Java:

sudo yum install lsof java-1.8.0-openjdk  java-1.8.0-openjdk-devel
java -version

在Fedora上安装Java:

$sudo dnf install java-11-openjdk
OR
$sudo dnf install java-1.8.0-openjdk  java-1.8.0-openjdk-devel

安装Java之后,我们可以使用以下命令快速确认版本:

$java -version
java version "11.0.1" 2016-10-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)

下载并安装Apache Maven

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

export VER="3.6.1"

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

curl -O 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结尾。

验证安装

最后,验证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项目目录:

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] -----------------------------------------------------------------------

"生成目标"创建了一个目录,该目录具有与artifactId相同的名称。

$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目录包含测试源文件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] -----------------------------------------------------------------------