java项目或JavaWeb项目通过Maven打包成jar包或war包的做法以及使用java命令运行

写在前面

要使用Maven打包项目,有两种方式,一种是利用开发工具(IDEA或Eclipse)来直接操作,另一种是在命令提示符界面使用Maven命令操作。

打包操作

1、使用开发工具(IntelliJ IDEA)打包

1.1、选择打包方式

首先需要明确自己的项目要打包的类型:jar或war
如果没有一些前端页面,建议打包成jar即可,如果包含web功能模块,就打包成war。
为此,我们需要在pom.xml文件中指定打包方式:

    <groupId>com.wnkj</groupId>
    <artifactId>sykjdsport</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

此处我选择打包成jar包。

1.2、添加构建插件

在pom.xml中添加下面插件:
如果不添加下面的配置,打包出来的项目要运行时,会报错:jar中没有主清单属性。即打包出来的文件和目录有残缺,没有按照SpringBoot的要求进行配置。

<build>
  <plugins>
      <plugin>
          <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
  </plugins>
 </build>
1.3、打包

IDEA的右侧边栏有一个竖着写的 Maven,点击打开它:Maven >> 项目名称 Maven Webapp >> Lifecycle
首先单击clean,再点击上面的运行按钮执行命令,其实相当于执行了:mvn clean命令。(或直接右键clean >> Run Maven
Build) 然后单击package,操作同上即可打包成功。

  • 注:package和install打包的区别:
    package命令:会执行 编译(mvn compile) >> 测试(mvn test) >> 打包(mvn package)等一系列操作,最后得到我们需要的包。
    install命令:会执行 编译(mvn compile) >> 测试(mvn test) >> 打包(mvn package) >> 安装(mvn install)操作。这个安装操作,就是会在你Maven本地仓库中安装打包好的这个包。
    举例:我的项目在pom.xml是这样子的:com.zdrl,那么就会在我本地仓库中的com/zdrl/目录下存在打包好的这个包。
1.4、结果

打包成功之后会生成target目录,项目的目录结构如下:
在这里插入图片描述
查看target目录:
在这里插入图片描述
查看打包好的jar包,目录结构:
在这里插入图片描述
如果看到这样的目录结构,说明打包成功。

2、使用Maven命令打包

2.1、选择打包方式

同上,修改pom.xml中的配置,本次演示war包的打包方式:

    <groupId>com.wnkj</groupId>
    <artifactId>sykjdsport</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>
2.2、添加构建插件

同上,在pom.xml中添加插件配置信息:

<build>
  <plugins>
      <plugin>
          <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
  </plugins>
 </build>
2.3、打包

为了更方便的使用Maven命令,建议配置Maven环境变量。如果已经配置,可以直接跳过。
配置Maven环境变量:此电脑 >> 右键“属性”
在这里插入图片描述
点击“高级系统设置”:
在这里插入图片描述
点击“环境变量”:
在这里插入图片描述
系统变量 >> 新建

变量名:MAVEN_HOME
变量值:自己本地Maven安装路径

路径检索到下面的程度即可:
在这里插入图片描述
添加完成点击确认
在这里插入图片描述
找到系统变量中的Path属性 >> 双击 >> 新建:

;%MAVEN_HOME%\bin;

在这里插入图片描述
最后切记需要层层点击 >> 确定,很多人创建完就叉掉或取消了。

完成上面的Maven环境变量配置,就进入下面这步:
我将项目放到D:\IntelliJ_IDEA\workstation\sykjdsport目录下,你们随意。
用管理员身份打开命令提示符界面,进入上面的目录

cd D:
cd D:\IntelliJ_IDEA\workstation\sykjdsport

然后执行Maven命令:

mvn package

前面提到的mvn package打包流程:编译 >> 测试 >> 打包,这里就可以看到实际效果了。
在这里插入图片描述
如此便打包成功。

2.4、查看打包结果

在项目根目录下生成了target目录
在这里插入图片描述

查看target目录:
在这里插入图片描述

查看war包的目录结构:
在这里插入图片描述
看到这样子的目录结构就说明打包成功。

运行

其实运行jar包和运行war包的命令都是一样,下面则直接演示。

为了方便演示,我把生成的jar包和war包统一放在目录:D:\IntelliJ_IDEA\workstation 下
在这里插入图片描述
打开命令提示符界面,进入包所在的路径

cd D:\IntelliJ_IDEA\workstation

运行jar包:

java -jar 包名.jar

在这里插入图片描述
输入Ctrl + C 可以终止运行
在这里插入图片描述

再输入命令:

java -jar 包名.war

在这里插入图片描述

至此,基本完成。

在Linux系统下运行jar或war包

进入到jar包所在目录。运行命令

java -jar 包名.jar

在这里插入图片描述
但如果这个窗口关闭,这个服务就停止了,为了防止这种情况,我们需要设置其在后台运行。

命令:nohup java –jar 包名.jar > testout.log &

命令nohup:表示不挂断运行命令
符号">":表示将输出打印到后面的文件中
符号“&”:表示在后台运行

在这里插入图片描述

运行war包也类似

命令:nohup java –jar 包名.war > testout.log &

命令nohup:表示不挂断运行命令
符号">":表示将输出打印到后面的文件中
符号“&”:表示在后台运行

在这里插入图片描述

如果要杀死后台进程,下面的命令或许能帮到你
查看对应进程的命令:其中9221就是PID(进程ID)

ps -ef|grep 相关服务名称

杀死进程:

kill -9 进程PID

在这里插入图片描述

至此结束,希望我们共同进步!

### Java Web WAR 部署服务器404解决方案 当Java Web项目打包WAR文件并上传至服务器后出现404错误,通常意味着请求的资源未找到。这可能是由于多种原因造的,括但不限于路径配置不当、应用未能正确加载是某些必要的类库缺失。 #### 1. 检查应用程序上下文路径设置 确保Tomcat其他Servlet容器中定义的应用程序上下文路径与实际部署一致。如果使用的是默认配置,则根路径应指向`/`;如果有自定义名称,则需确认其匹配浏览器地址栏输入的内容[^1]。 #### 2. 确认WEB-INF下的结构无误 检查WAR内部结构是否完整,特别是`WEB-INF/lib`目录下是否有所有依赖JAR文件存在。对于Spring Boot项目来说,还需特别注意是否存在第三方本地JAR丢失的情况,如因缺少特定银行提供的加密工具而导致`NoClassDefFoundError`异常[^2]。 #### 3. 排除IDE自动化构建过程中的潜在问题 有时开发环境(例如IntelliJ IDEA)可能不会按照预期的方式处理外部依赖项,在这种情况下,尝试通过命令行手动创建WAR文件可以避免这些问题的发生。具体操作可以通过Maven插件完编译打包工作,并仔细核对最终产物内的组件构,比如确保所有的Service层实现都被含进来[^3]。 #### 4. 审视日志信息获取更多线索 查看Tomcat的日志输出可以帮助定位确切的问题所在。常见的有catalina.out和localhost.<date>.log两个主要位置存储着启动期间发生的事件描述。这些记录能够揭示出错的具体环节以及任何关联警告提示。 #### 5. 实施自动化的WAR更新机制 为了简化维护流程并减少人为失误带来的风险,考虑采用一种可靠的war自动升级策略。该方法涉及定期检测新版本可用性、安全下载最新二进制副本到指定临时空间内、暂停现有实例运行以便于替换旧版安装及其解压缩后的子文件夹集合体,最后重启服务使更改生效[^5]。 ```bash # 使用 Maven 构建 war 文件的例子 mvn clean package -DskipTests=true ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值