0
点赞
收藏
分享

微信扫一扫

Spring Boot:使用Maven打包成JAR与运行


项目结构图:

Spring Boot:使用Maven打包成JAR与运行_jar


​pom.xml​​:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.2</version>
</parent>

<packaging>jar</packaging>

<groupId>com.kaven</groupId>
<artifactId>springboot</artifactId>
<version>0.0.1-SNAPSHOT</version>

<name>springboot</name>
<description>springboot</description>

<properties>
<java.version>1.8</java.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<finalName>hello-world</finalName>
</build>
</project>

打包成​​JAR​​:

<packaging>jar</packaging>

​application.properties​​:

server.port=8080

​Spring Boot​​​应用的默认启动端口也是​​8080​​,这里只是为了演示。

​HelloWorldController​​:

package com.kaven.springboot.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloWorldController {

@GetMapping("/hello-world")
public String helloWorld() {
return "Hello World";
}
}

启动类:

package com.kaven.springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringbootApplication {

public static void main(String[] args) {
SpringApplication.run(SpringbootApplication.class, args);
}
}

使用​​Maven​​​打包​​Spring Boot​​​项目,有两种方式,第一种是使用​​IDEA​​的快捷键。

Spring Boot:使用Maven打包成JAR与运行_java_02


双击即可打包​​Spring Boot​​​项目,如下图所示,生成了​​hello-world.jar​​文件。

Spring Boot:使用Maven打包成JAR与运行_spring_03


该文件的名称由​​pom.xml​​的如下配置指定:

<build>
<finalName>hello-world</finalName>
</build>

当无法使用​​IDEA​​​等编译器的快捷键时,可以直接使用​​Maven​​​提供的命令来打包​​Spring Boot​​项目。

mvn package

Spring Boot:使用Maven打包成JAR与运行_jar_04


Spring Boot:使用Maven打包成JAR与运行_java_05


然后可以使用​​java -jar​​​命令来运行该​​JAR​​包,即启动应用。

C:\Users\Kaven>java -help

用法: java [-options] class [args...]
(执行类)
或 java [-options] -jar jarfile [args...]
(执行 jar 文件)
其中选项包括:
-d32 使用 32 位数据模型 (如果可用)
-d64 使用 64 位数据模型 (如果可用)
-server 选择 "server" VM
默认 VM 是 server.

-cp <目录和 zip/jar 文件的类搜索路径>
-classpath <目录和 zip/jar 文件的类搜索路径>
用 ; 分隔的目录, JAR 档案
和 ZIP 档案列表, 用于搜索类文件。
-D<名称>=<值>
设置系统属性
-verbose:[class|gc|jni]
启用详细输出
-version 输出产品版本并退出
-version:<值>
警告: 此功能已过时, 将在
未来发行版中删除。
需要指定的版本才能运行
-showversion 输出产品版本并继续
-jre-restrict-search | -no-jre-restrict-search
警告: 此功能已过时, 将在
未来发行版中删除。
在版本搜索中包括/排除用户专用 JRE
-? -help 输出此帮助消息
-X 输出非标准选项的帮助
-ea[:<packagename>...|:<classname>]
-enableassertions[:<packagename>...|:<classname>]
按指定的粒度启用断言
-da[:<packagename>...|:<classname>]
-disableassertions[:<packagename>...|:<classname>]
禁用具有指定粒度的断言
-esa | -enablesystemassertions
启用系统断言
-dsa | -disablesystemassertions
禁用系统断言
-agentlib:<libname>[=<选项>]
加载本机代理库 <libname>, 例如 -agentlib:hprof
另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help
-agentpath:<pathname>[=<选项>]
按完整路径名加载本机代理库
-javaagent:<jarpath>[=<选项>]
加载 Java 编程语言代理, 请参阅 java.lang.instrument
-splash:<imagepath>
使用指定的图像显示启动屏幕

启动应用:

E:\workspace\IDEA\my\springboot> java -jar .\target\hello-world.jar

Spring Boot:使用Maven打包成JAR与运行_spring boot_06


接口可以正常访问。

Spring Boot:使用Maven打包成JAR与运行_spring_07


设置应用的启动端口(配置文件的优先级以后会介绍):

E:\workspace\IDEA\my\springboot> java -jar .\target\hello-world.jar --server.port=9090

Spring Boot:使用Maven打包成JAR与运行_spring boot_08


接口也可以正常访问。

Spring Boot:使用Maven打包成JAR与运行_maven_09

这是博主的​​Spring Boot​​​系列博客,会由易到难,后面还会介绍使用​​Maven​​​打包成​​WAR​​​并且部署到​​Tomcat​​​,以及打包成​​Docker​​镜像,并且使用该镜像创建容器来启动应用。

到这里就结束了,如果博主有说错的地方或者大家有不同的见解,欢迎大家评论补充。


举报

相关推荐

0 条评论