购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

创建一个可执行的JAR包的步骤如下。

首先,选中项目Springboothelloworld,然后右击它,在弹出的菜单中,选择“Run As”→Maven install”,如图3-10所示。

▲图3-10 选择“Run As”→Maven install”选项

若遇到如下运行错误,则说明出现Java的版本冲突问题。

[ERROR] Failed to execute goal org.apache.maven.plugins: maven-compiler- 
plugin:3.8.1:compile (default-compile) on project springboothelloworld: Fatal
error compiling: 无效的目标发行版: 17 -> [Help 1]

下面介绍一下该问题的解决方法。首先,在命令行中,输入“java –version”命令,查看Java版本,如图3-11所示。

▲图3-11 查看Java版本

然后,将pom.xml文件中java.version的值修改为1.8。

<properties>
        <java.version>1.8</java.version>
        <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
</properties>

接着,先执行Maven clean,再执行Maven install,提示如下错误。

[ERROR] Failed to execute goal org.apache.maven.plugins: 
maven-surefire-plugin:2.22.2:test (default-test) on project 
springboothelloworld: There are test failures.

按照错误提示,添加maven-surefire-plugin依赖项,具体代码如下。

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.2</version>
            <configuration>
            <testFailureIgnore>true</testFailureIgnore>
            </configuration>
            </plugin>
        </plugins>
    </build>

再次执行Maven install,运行结果如图3-12所示。此时,就创建了一个可执行的JAR包。

▲图3-12 运行结果

创建可执行的JAR包后,进入target目录,执行图3-13所示的命令。

▲图3-13 执行JAR包

现在看一下控制台,Tomcat在端口8080(HTTP)上启动。然后,打开Web浏览器并访问http://localhost:8080/hello,运行结果如图3-14所示。

▲图3-14 JAR包执行结果

Spring Boot项目与传统项目最大的区别:传统项目中,打包生成WAR包并部署到服务器上,需要额外的Servlet容器;而Spring Boot项目中,直接打成JAR包,并内置Servlet容器,也就是说,通过命令 Java -jar xx.jar直接运行JAR包,不需要额外的Servlet容器。

在解压缩springboothelloworld-0.01-SNAPSHOT.jar后,我们看一下JAR包中META/INF/ MANIFEST.MF文件的内容,其中的Start-Class指定要启动的实际入口类(即包含main()方法的类)。对于入口类,推荐将它放在项目的顶层包中,其他的类放在顶层包的子包中。MANIFEST.MF文件的内容如图3-15所示。

▲图3-15 MANIFEST.MF文件的内容

spring-boot-loader模块允许Spring Boot支持可执行的JAR和WAR包。在MANIFEST.MF文件中,将Main-Class属性设置为程序JAR包的启动类JarLauncher,实现Spring Boot应用程序的启动。 E0MzoqQFG4pEWqS6C/bKU3CdKPNzwzuP0VdXRlhxgdBqOC4URIrRUUCgAaV6yOkQ

点击中间区域
呼出菜单
上一章
目录
下一章
×