maven命令:clean、compile、package等,结合idea介绍(附加,Linux运行封装的jar包)

hahaha_2568 2024-07-28 17:07:02 阅读 93

目录

一、maven介绍

二、idea中设置maven

三、maven命令使用

mvn clean:

mvn compile:

mvn package:

mvn install:

mvn deploy:

mvn test:

四、Linux运行封装的jar


本文主要内容为:涉及maven的学习,maven的基本介绍,idea下的maven基础设置,pom文件初始化内容含义,以及如何使用maven命令,再进行衍生,如何在linux系统上启动运行封装好的jar包。

一、maven介绍

随着越来越多的框架,项目中的jar包越来越多,需要下载jar包,放在当前工程指定位置,通过maven可以管理项目,依赖对应的jar包可以自动下载。使用maven可以自动化构建、测试、打包和发布项目。在依赖中,包含:

groupID:公司业务线名

artifactID:产品线名-模块名

version:版本号

如引入log4j2时候有以下依赖坐标:

<code><dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-core</artifactId>

<version>2.12.1</version>

</dependency>

其中,版本号一般包括:主版本号.次版本号.修订号

eg:初始1.0.0 -> 修改bug 1.0.1 -> 功能调整 1.1.1

主版本号一般在修改了产品方向的新功能修改,次版本号在新增类、接口时修改。

二、idea中设置maven

maven安装比较简单,直接官网下载安装就行。对于maven的设置,主要包括:选择maven安装路径,配置私服steeings.xml,设置项目jar包存放路径。

当创建好maven项目后,在默认pom坐标中,有以下代码,具体释义如下:

在上图的行号9后,通过<packaging>jar</packaging>,可以设置当前项目打jar包,web工程需要打war包。

maven基本设置介绍完了,那么如何得到坐标呢?

可以通过https://mvnrepository.com/查询常用jar包依赖。serarch后,点击所需要的jar包,建议选择使用量较多的版本号,则可以得到jar包的依赖坐标。在pom中<dependencies>标签下导入所需要的坐标。

三、maven命令使用

在idea中,点击右侧maven,打开Lifecycle,可以看到很多maven的常用命令。

以下就各个常用的命令进行介绍。

mvn clean:

清理编译或打包后的项目结构,也就是会把target文件删除。

mvn compile:

编译项目,生成target文件,将当前项目中的字节类,编译为字节码文件。

mvn compile只能编译核心程序,如果要编译测试程序,需要使用mvn test-compile

mvn package:

打包项目,生成jar或war文件,需要注意test代码必须都通过,否则会打包失败。项目默认时,是生成jar包,最终生成如下箭头所示:

打包成war包过程中,可能会报错“import: Enty[import from realm ClassRealm[maven. api, parent: null]]”,这是由于war包打包插件和jdk版本不匹配:pom.xml中添加以下代码即可。

<code><build>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-war-plugin</artifactId>

<version>3.2.2</version>

</plugin>

</plugins>

</build>

mvn install:

打包后上传到maven本地仓库。安装后,其他本地项目可以<dependency>引入mvn package打包好的jar包。

本地仓库:小节“二、idea中设置maven”下,设置的maven依赖存储路径。

mvn deploy:

只打包,上传到maven私服仓库。

mvn test:

执行测试源码,会在target文件夹下生成test-classes文件夹。注意:该命名会执行test文件,并给出报告,其中,报告在surefire-reports文件夹下。

在maven工程中,test文件下,主要是用于单测的书写,其中需要注意:

测试类中,测试方法名,必须以test开头命名测试类必须以Test命名开头或结尾,建议**Test。只有当命名规范,maven才能识别到测试类。

四、Linux运行封装的jar

当存在springboot项目时,代码中包括@SpringBootApplication及其启动类。按住键盘ctrl,通过mvn clean、mvn package封装当前项目为jar包。

依赖于Linux系统的开源性、安全性、稳定性、灵活性以及低成本,项目代码是基于Linux系统运行的。

此时,在堡垒机中,需要先将jar包上传到指定文件夹下。假设需要上传到/export/servers/jdk-1.6.0_25/lib/目录下,Linux命令为:

<code>scp /path/to/your/local/jarfile.jar username@linux_server_ip:/home/export/servers/jdk-1.8.0_201/lib/

将 /path/to/your/local/jarfile.jar 替换为你本地JAR包的路径。将 username 替换为你在Linux系统中的用户名。将 linux_server_ip 替换为你的Linux服务器的IP地址。输入你的Linux系统密码(如果需要)来完成上传。

当jar包被赋予可执行权限后,才可以在Linux直接运行:

chmod +x jarfile.jar

在堡垒机中,存在多个运行进程,此时,读者的功能是对当前Java进程进行扫描(读者如不需要可直接运行java -jar jarfile.jar)。

查询本机Java进程命令为:

ps -ef | grep java

假设得到进程号为126。在SpringBootApplication启动类中,如果存在需要的输出内容,这时可以将打印写入到指定“applicationOut.log”文件夹:

java -Djava.ext.dirs=/home/export/servers/jdk-1.6.0_25/lib/

-server -jar jarfile.jar 126 > applicationOut.log 2>&1 &

java: 运行 Java 程序的命令-Djava.ext.dirs=/home/export/servers/jdk-1.6.0_25/lib/: 这是用来指定 Java 扩展库的目录的参数。在这个命令中,指定了 /home/export/servers/jdk-1.6.0_25/lib/ 目录作为 Java 扩展库的目录。-server: 告诉 JVM 在“server”模式下运行,这样 JVM 会优化为长时间运行的服务。-jar jarfile.jar: 指定了要执行的 JAR 文件的路径和名称。126: 运行jar包的进程号。> sa.log 2>&1: 将标准输出和标准错误输出重定向到 applicationOut.log 文件中。> sa.log 表示将标准输出重定向到 applicationOut.log 文件,2>&1 表示将标准错误输出重定向到标准输出,也就是都输出到 applicationOut.log 文件中。&: 这个符号表示在后台运行这个命令,这样命令执行后会立即返回,不会阻塞当前终端。

以上是maven的整篇文章,可以实现对maven常见命令的基本熟悉。运行jar包小节作为参考,代码已在Liunx系统上运行过,功能需求可能有不同,可供参考。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。