Spring Boot 在 Eclipse 中创建可执行 JAR,和运行可执行 JAR。

编写 Hello, World!

现在您已准备好开始直接使用 Spring Boot 了。本节中的示例基于一个名为 HelloSpringBoot  的简单应用程序。

让我们行动起来,创建一个新的 Maven 项目!

创建 Maven 项目

在 Eclipse 中,转到 File > New Project 并选择 Maven > Maven  Project,如图 1 所示。

图 1. 选择一个 Maven 项目

用于选择 Maven 项目的 Eclipse New Project 对话框的屏幕截图。

单击 Next,在随后的对话框中(未给出)再次单击 Next。

您会被要求选择新 Maven 项目的架构类型。选择 maven-archetype-quickstart,如图 2 所示。

图 2. 选择 Maven quickstart 架构类型

用于选择 Maven 快速启动架构类型的 New Project 对话框的屏幕截图。

单击 Next。

最后,输入工件设置,如图 3 所示。

图 3. 选择 Maven 工件设置

用于选择 Maven 架构类型设置的 New Project 对话框的屏幕截图。

我为 HelloSpringBoot 应用程序使用了以下设置:

  • Group Id:com.nowjava.learn

  • Artifact Id:HelloSpringBoot

  • Version:1.0-SNAPSHOT

  • Package:com.nowjava.learn.hellospringboot

单击 Finish 创建该项目。

创建 POM

修改 New Project 向导创建的 POM,使其类似于清单 1。

清单 1. HelloSpringBoot 的 POM文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0modelVersion>
    <groupId>com.nowjava.learngroupId>
    <artifactId>HelloSpringBootartifactId>
    <version>1.0-SNAPSHOTversion>
    <packaging>jarpackaging>
    <name>HelloSpringBootname>
    <url>http://maven.apache.orgurl>
    <parent>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-parentartifactId>
        <version>1.5.2.RELEASEversion>
    parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>
    dependencies>
    <properties>
        <java.version>1.8java.version>
    properties>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            plugin>
        plugins>
    build>
project>

请注意清单 1 中突出显示的行:

第 10 至 14 行显示了  元素,它指定了 Spring Boot 父   POM,并包含常见组件的定义。您不需要手动配置这些组件。

第 16 至 19 行显示了 spring-boot-starter-web Spring Boot  starter 上的 。它们告诉 Spring Boot,该应用程序是 Web 应用程序。Spring Boot 会相应地形成自己的观点。

第 25 至 30 行 告诉 Maven 使用 spring-boot-maven-plugin 插件生成该 Spring Boot 应用程序。

配置不是太多,对吧?请注意,这里没有 XML。我们使用 Java 注释完成剩余配置。

进一步了解 Spring Boot 的观点

在进一步介绍之前,我想再讲讲 Spring Boot 的观点。换句话说,我认为有必要解释一下 Spring Boot 如何使用spring-boot-starter-web 等 starter 来形成自己的配置观点。

示例应用程序 HelloSpringBoot 使用了 Spring Boot 的 Web 应用程序 starter spring-boot-starter-web。基于这个 starter,Spring Boot 形成了该应用程序的以下观点:

  • 使用 Tomcat 作为嵌入式 Web 服务器容器

  • 使用 Hibernate 进行对象-关系映射 (ORM)

  • 使用 Apache Jackson 绑定 JSON

  • 使用 Spring MVC 作为 REST 框架

我们来讲讲主见!据 Spring Boot 辩解,这些是最流行的 Web 应用程序默认设置 — 至少我一直在使用它们。

但是还记得我说过 Spring Boot 可以自定义吗?如果您想使用不同的技术组合,可以轻松地覆盖 Spring Boot 的默认设置。

我们接下来将演示一种简单的自定义。

丢失

如果您的 POM 中已有一个  元素,或者如果不想使用它,该怎么办?Spring Boot  是否仍会正常运行?

是的,它会正常运行,但您需要做两件事:

  1. 手动添加依赖项(包括版本)

  2. spring-boot-maven-plugin 添加一个配置代码段,如清单 2 所示:

    清单 2. 在不使用
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
                <version>1.5.2.RELEASEversion>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackagegoal>
                        goals>
                    execution>
                executions>
            plugin>
        plugins>
    build>

一定要注意,Maven 的许多优秀功能都是在

该项目已配置和自定义。现在是时候构建可执行程序了。

构建可执行 JAR

要使用 Maven 构建可执行 JAR,有两种选择:

  1. 在 Eclipse 中运行 Maven 构建

  2. 从命令行运行 Maven 构建

我将介绍如何实现这两种方法。

在 Eclipse 中构建

要在 Eclipse 中运行 Maven 构建,请右键单击 POM 文件并选择 Run As > Maven Build。在 Goals 文本字段中,输入 cleanpackage,然后单击 Run 按钮。

图 4. 在 Eclipse 中构建可执行 JAR

在 Eclipse 中构建可执行的 JAR

您会在控制台视图中看到一条消息,表明成功实现了构建:

展开阅读全文

本文系作者在时代Java发表,未经许可,不得转载。

如有侵权,请联系nowjava@qq.com删除。

编辑于

关注时代Java

关注时代Java