Linux下Maven编译工具的安装配置与打包

简介: Linux下Maven编译工具的安装配置与打包

Maven介绍


 Maven是意第绪语,意思是“知识的积累者”,最初是为了简化Jakarta Turbine项目中的构建过程。有几个项目,每个项目都有自己的Ant构建文件,所有项目都略有不同。JAR已检入CVS。我们想要一种标准的方式来构建项目,清晰地定义项目的组成,一种简单的方式来发布项目信息,以及一种在多个项目中共享JAR的方式。


 结果是一个可以用于构建和管理任何基于Java的项目的工具。我们希望我们已经创建了一些东西,可以使Java开发人员的日常工作更加轻松,并且通常有助于理解任何基于Java的项目。


Maven下载


清华大写开源镜像站Maven下载:https://mirror.tuna.tsinghua.edu.cn/apache/maven/maven-3/


Maven官方下载地址:https://maven.apache.org/download.cgi

10.png

Maven安装


注意:必须要有JDK环境


1.将下载好的Maven安装包解压至 /usr/local/ 目录下

[root@Web1 ~]# wget https://mirror.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
[root@Web1 ~]# ll
-rw-r--r--  1 root root  9506321 3月  10 07:08 apache-maven-3.6.3-bin.tar.gz
[root@Web1 ~]# tar -xf apache-maven-3.6.3-bin.tar.gz -C /usr/local/
[root@Web1 ~]# ls /usr/local/
apache-maven-3.6.3  bin  etc  games  include  lib  lib64  libexec  nginx  sbin  share  src
[root@Web1 ~]# yum -y install java
[root@Web1 ~]# java -version
openjdk version "1.8.0_322"
OpenJDK Runtime Environment (build 1.8.0_322-b06)
OpenJDK 64-Bit Server VM (build 25.322-b06, mixed mode)

3.修改Maven存储仓库路径(创建本地存储目录)

[root@Web1 ~]# cd /usr/local/apache-maven-3.6.3/
[root@Web1 apache-maven-3.6.3]# ls
bin  boot  conf  lib  LICENSE  NOTICE  README.txt
[root@Web1 apache-maven-3.6.3]# mkdir mkdir -p /usr/local/apache-maven-3.6.3/repository    #创建本地存储目录
[root@Web1 apache-maven-3.6.3]# vim conf/settings.xml
...
  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/usr/local/apache-maven-3.6.3/repository>   #在本地创建存储目录,将这里的仓库存储路径修改为创建的仓库路径
  -->
...

4.设置Maven阿里云镜像仓库(加速项目所需jar包下载,也可以在项目pom.xml文件中配置)

[root@Web1 ~]# cd /usr/local/apache-maven-3.6.3/
[root@Web1 apache-maven-3.6.3]# ls
bin  boot  conf  lib  LICENSE  NOTICE  README.txt
[root@Web1 apache-maven-3.6.3]# vim conf/settings.xml  #编辑settins.xml文件,在159行下加入配置
...
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
    <mirror>                #复制一个镜像仓库配置进去
      <id>aliyunmaven</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>              #到这里为完整的一个镜像仓库配置
  </mirrors>
...

5.配置Maven环境变量


export MAVEN_HOME=/usr/local/apache-maven-3.6.3


export PATH=$PATH:$MAVEN_HOME/bin

[root@Web1 apache-maven-3.6.3]# vim /etc/profile
...
export MAVEN_HOME=/usr/local/apache-maven-3.6.3    #最后一行加上配置
export PATH=$PATH:$MAVEN_HOME/bin
[root@Web1 apache-maven-3.6.3]# source /etc/profile

5.查看Maven版本

[root@Web1 ~]# mvn -version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/apache-maven-3.6.3
Java version: 1.8.0_322, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-862.el7.x86_64", arch: "amd64", family: "unix"

Maven打包


 将项目进行编译、测试之后,接下来就是打包(package),我们的pom.xml中如果没有指定打包类型,那么使用默认打包类型jar,简单的执行命令mvn clean package进行打包。


修改pom.xml文件,指定打包类型

-指定打包类型是jar的配置
...
<packaging>jar</packaging>;
...
-指定打包类型是war的配置
...
<packaging>war</packaging>
...

注意:


打包类型无论是war包还是jar包,都需要在配置文件pom.xml中加入maven的war/jar插件才可以!


例:


 打包war包,加入maven的war插件

...
<plugin>
              <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
</plugin>
...

 打包jar包,加入maven的jar插件

...
<plugin>  
            <groupId>org.apache.maven.plugins</groupId>  
            <artifactId>maven-jar-plugin</artifactId>  
            <version>2.4</version>  
            <configuration>  
                <archive>  
                    <manifest>  
                        <addClasspath>true</addClasspath>  
                        <classpathPrefix>lib/</classpathPrefix>  
                        <mainClass>com.zy.demo.demo.App</mainClass>  
                    </manifest>  
                </archive>  
            </configuration>  
</plugin>
...

Maven编译打包项目成war包

[root@Jenkins company]# cd  项目路径(路径中需包含pom.xml)
[root@Jenkins company]# mvn clean package  或者 mvn package -Dmaven.test.skip=true (-Dmaven.test.skip=true为跳过所有的单元测试)
...
...
Downloaded from central: https://repo.maven.apache.org/maven2/org/vafer/jdependency/0.7/jdependency-0.7.jar (12 kB at 2.7 kB/s)
Downloaded from central: https://repo.maven.apache.org/maven2/commons-io/commons-io/1.3.2/commons-io-1.3.2.jar (88 kB at 19 kB/s)
Downloaded from central: https://repo.maven.apache.org/maven2/asm/asm-analysis/3.2/asm-analysis-3.2.jar (18 kB at 3.8 kB/s)
Downloaded from central: https://repo.maven.apache.org/maven2/asm/asm-util/3.2/asm-util-3.2.jar (37 kB at 7.7 kB/s)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  02:49 min
[INFO] Finished at: 2022-03-10T09:10:38+08:00
[INFO] ------------------------------------------------------------------------
[root@Jenkins company]# ls target/     #查看打好的war包
classes  dbSun-1.0  dbSun-1.0.war  dbSun-1.0.war.original  generated-sources  maven-archiver
相关文章
|
5天前
|
缓存 资源调度 安全
深入探索Linux操作系统的心脏——内核配置与优化####
本文作为一篇技术性深度解析文章,旨在引领读者踏上一场揭秘Linux内核配置与优化的奇妙之旅。不同于传统的摘要概述,本文将以实战为导向,直接跳入核心内容,探讨如何通过精细调整内核参数来提升系统性能、增强安全性及实现资源高效利用。从基础概念到高级技巧,逐步揭示那些隐藏在命令行背后的强大功能,为系统管理员和高级用户打开一扇通往极致性能与定制化体验的大门。 --- ###
26 9
|
5天前
|
Java 应用服务中间件 Maven
Maven的三种项目打包方式——pom,jar,war的区别
Maven 提供了多种打包方式,分别适用于不同类型的项目。pom 用于父项目或聚合项目,便于项目的结构和依赖管理;jar 用于Java类库或可执行的Java应用程序;war 则专用于Java Web应用程序的部署。理解这些打包方式的用途和特点,可以帮助开发者更好地配置和管理Maven项目,确保构建和部署过程的顺利进行。无论是单模块项目还是多模块项目,选择合适的打包方式对于项目的成功至关重要。
18 3
|
7天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
20 5
|
29天前
|
前端开发 Unix Linux
揭秘 Electron 的 Linux 打包过程:你知道背后发生了什么吗?
本文详细介绍了 `electron-builder` 在 Linux 平台上如何打包 Electron 应用程序,涵盖了 AppImage、Flatpak、Snap 等多种格式的打包原理和具体实现。文章从初始化 `LinuxPackager` 到创建各种目标格式的包,详细解析了每个步骤的代码逻辑和关键方法,帮助开发者更好地理解和使用 `electron-builder` 进行 Linux 应用的打包。
70 2
揭秘 Electron 的 Linux 打包过程:你知道背后发生了什么吗?
|
2月前
|
网络协议 安全 Linux
如何配置Linux端的ftp?
如何配置Linux端的ftp?
148 64
|
20天前
|
Java Maven Android开发
【Azure Developer】VS Code打包Java maven Project 遇见 BUILD FAILURE
Unknown lifecycle phase "lean". You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>
|
21天前
|
Java Linux 网络安全
NIFI在Linux服务区上的部署配置过程是什么?
【10月更文挑战第21天】NIFI在Linux服务区上的部署配置过程是什么?
38 2
|
21天前
|
缓存 IDE Java
idea的maven项目打包时没有source下的文件
【10月更文挑战第21天】idea的maven项目打包时没有source下的文件
34 1
|
1月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
264 3
|
1月前
|
Java 测试技术 Maven
maven 打包命令
maven 打包命令
25 6