linux 如何编译maven项目(Linux下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
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"
将项目进行编译、测试之后,接下来就是打包(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 maven-status
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com