我的最強Gradle應用程式(第一部分)
首先
在之前的文章中,我尝试了使用Spring Boot,并且成功地达到了gradle的”Hello World!”级别。然而,不久之后我不小心将Eclipse更新到了2019-06版本,由于回滚到之前的版本会很麻烦,所以我决定乘机再次尝试新版本下使用gradle创建应用程序。
然而,由于版本不同,以前成功的事情现在失败了,仍然是一种摸索和探索的状态,因此似乎很难在没有任何参考的情况下重新实现相同的事情,所以在这次也想留下制作应用程序的过程作为备忘录。
这篇文章的目标是…
使用Gradle创建Spring Boot应用程序的Hello World(最终目标是创建黑白棋应用程序)。
1.2 版本等
-
- Pleiades All in Oneのバージョン: Eclipse 2019-06
-
- STS(Spring Tool Suite)のバージョン: 4.3.1 (Spring Tools 4)
- Buildshipのバージョン: 3.x
1.3 参考书籍的一种选择:
从这一次开始,我会参考下一本书。在本文中,如果提到”入门书”,指的就是这本书。
- 掌田津耶乃(2018)『Spring Boot 2 プログラミング入門』秀和システム
这是一个次要的事情,但在本文中,我为了所有的“入门书”这个词组都跳转到这一节来,添加了页面内链接,但是由于写作规则复杂,我遇到了困难。关于页面内链接,我参考了这篇文章。
再次到达”Hello World!”。
2.1 安装Pleiades All in One
在进行Java开发时,我认为Eclipse非常方便,但对英语不自信的我来说,这样就很困难了。因此,我决定安装Eclipse的同时,使用Pleiades进行日文化。
以下是Pleiades All in One的安装步骤。
您可以从这里安装Pleiades。有一个写着“Eclipse 2019-06”的蓝色按钮,点击它。
根据开发所需的语言选择相应的包,如果不担心电脑容量,可以选择Ultimate的完整版本。顺便提一下,它的大小为2.1GB。根据网络速度的不同,可能需要一些时间来下载。为什么我在回程中的新干线上开始下载呢,原因无法解释。
我下载的文件需要解压,但像这次一样大约2GB的大容量文件,由于软件的原因可能无法正常解压。所以我使用了7-Zip来解压。
解压后会创建一个名为”pleiades”的文件夹,只需将其保存在所喜欢的位置即可(无需进行传统的安装)。然而,我们还有一个名为”workspace”的文件夹用于保存我们创建的源代码等,但如果在workspace文件夹路径中包含半角空格或者全角字符,可能会导致各种问题,所以我决定将pleiades文件夹放在C盘的根目录下。
另外,默认情况下,pleiades文件夹内还有一个workspace文件夹,但我也将这个workspace文件夹放在C盘的根目录下(为了避免在卸载pleiades时不小心删除掉我创建的源代码)。至于workspace文件夹应该放在哪里,只需要确保路径中不包含半角空格或者全角字符,可以根据个人喜好决定。
顺便说一句,如果仅仅命名为”workspace”,不知道是什么类型的工作空间,因此我将其命名为”eclipse.workspace”。此外,当Eclipse启动时,会加载该工作空间文件夹,如果其中有大量文件,启动时间就会较长。因此,我在”eclipse.workspace”文件夹下创建了一些小的工作空间用文件夹,例如”eclipse.workspace.myOthello”或”eclipse.workspace.paiza.drank”(更多关于切换工作空间的方法将在后文中介绍)。
2.2 启动Eclipse并安装Gradle。
在Pleiades文件夹中有一个Eclipse文件夹,里面有一个eclipse.exe,双击它就可以启动Eclipse。会先问你要选择哪个工作空间,所以可以指定之前创建的工作空间文件夹。如果不小心选择了错误的文件夹作为工作空间,也没有问题,可以后来通过菜单栏中的“文件”选项中的“切换工作空间”来进行更改。
嗯,“入门书”的第1.2节介绍了安装Spring Tool Suite(STS)作为准备Spring Framework开发环境的方法。但是,由于所有截图都是以英语描述的,本文将使用日语(由Pleiades本地化的项目名称)进行简单说明。
从菜单栏中的“帮助”选项中选择“Eclipse Marketplace”。然后会弹出一个新的页面,“搜索”选项卡被选中。在其中有一个搜索字符串的输入框,只需输入“sts”,然后按Enter键,即可显示搜索结果。搜索结果中应该会有几个“Spring Tools”的项目。
虽然我自己并不太了解这个情况,但因为我进行了一些尝试和错误,所以在搜索结果中的「Spring Tools 4」栏内的按钮上显示为「已安装」,所以不需要特别安装(可能已经安装过了或者最新版的Eclipse中可能已经包含了Spring Tools 4)。如果在「Spring Tools 4」栏内有一个写着「安装」的按钮的话,请点击它进行安装。根据我之前安装Spring Tools 3的经验,应该不需要进行复杂的设置。
然后,在“入门书”的第3.2节中,介绍了如何在STS中使用Gradle的方法,但由于我正在构建的Eclipse版本不同,所以即使采取相同的步骤也不会成功。经过向Google先生询问后,我尝试了以下的试错过程。
我选择“帮助”菜单栏下的“安装新软件”。一个新窗口弹出,需要输入网站地址作为操作目标。下面是获取该地址的步骤。
-
- 用以下的关键词在“入门书”中搜索:Buildship、gradle、download。
-
- 在搜索结果中出现了“Eclipse Buildship: Eclipse Plug-ins for Gradle”这个网站,点击它。
-
- 在网页上找到了一个黄色的按钮,“Download Eclipse Buildship: Eclipse Plug-ins for Gradle”,点击它后会跳转到GitHub上的eclipse网站。
- 在页面的底部有一个名为“Update sites for Buildship 3.x”的表格,先复制最新的2019-03版本的release地址(https://download.eclipse.org//buildship/updates/e411/releases/3.x)。
换言之,Google老师总是每个人的盟友!
然后,将该地址粘贴到工作目标位置,然后在下面的框中会显示一个名为“Buildship: Gradle 用 Eclipse 插件”的列表,勾选后点击“下一步”。当屏幕变动后,再次点击“下一步”。
然后,进入到许可证界面,自然地勾选“同意使用条款”后点击“完成”。过一段时间后,会提示重新启动Eclipse,重新启动。这样Gradle的安装就完成了。
2.3 创建Spring起动器项目
在默认情况下,在左上角的包资源管理器中的空白区域右键点击,“新建”→“项目”。注意不要选择Gradle项目!然后会弹出向导选择界面,在下方列表中选择“Spring Boot”,并选择“Spring Starter项目”。
在下一个设置界面中,您需要选择名称、组等,但类型必须使用上述安装的“Gradle (Buildship 3.x)”。然后,在接下来的依赖关系界面中,由于底部有“Web”,请勾选其中的所有项目,然后点击“下一步”。在下一个界面中按下“完成”按钮后,您创建的项目将显示在包资源管理器中。
我会试着运行一下。在刚才显示的项目名称上点击右键,选择“运行”→“Spring Boot应用程序”,然后在控制台选项卡中应该会输出以Spring开头的消息。
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.7.RELEASE)
貼上去之后,Spring这个字看起来不太清楚…
2.4 你好,世界!
因为还没有创建要显示的页面,所以我会开始处理那部分。请以“Package Explorer”名称右键单击,然后选择“New”→“Class”。新建Java类的窗口将弹出,将其命名为MyOthelloController,不需要生成注释,请取消勾选后点击“Finish”。
由于创建了一个只包含空类的简单源代码,所以将其添加到这里如下。
package myothello.gradle;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyOthelloController {
@RequestMapping("/")
public String index() {
return "Hello my othello world!";
}
}
如果达到这一步,请像之前一样执行,并在任意浏览器中访问http://localhost:8080/,将显示index方法返回的字符串“Hello my othello world!”。
3. 使用Gradle制作网页
我们将参考《入门书》第3.4节的内容来进行网页的制作。
下载 spring-boot-starter-thymeleaf 的版本为 3.1
首先,将build.gradle文件中的dependencies部分按如下方式进行更改。可能由于版本不同,所以”入門書”和其他详细文本可能会有所不同,但我们会在尝试中仔细调试。
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-rest'
implementation 'org.springframework.boot:spring-boot-starter-hateoas'
implementation 'org.springframework.boot:spring-boot-starter-jersey'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-web-services'
implementation 'org.springframework.boot:spring-boot-starter-webflux'
implementation 'com.vaadin:vaadin-spring-boot-starter'
implementation 'org.springframework.data:spring-data-rest-hal-browser'
implementation 'org.springframework.session:spring-session-core'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'io.projectreactor:reactor-test'
testImplementation 'org.springframework.restdocs:spring-restdocs-mockmvc'
}
现在添加了一行代码「implementation ‘org.springframework.boot:spring-boot-starter-thymeleaf’」。然而,这个库似乎还没有被下载,所以我们需要在项目名称上右键点击包资源管理器,选择「Gradle」→「刷新Gradle项目」。这将更新项目并添加spring-boot-starter-thymeleaf。不太清楚为什么这样做。
3.2 控制器的修复
请按照以下的方式修改之前用于“Hello World!”的控制器。
package myothello.gradle;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class MyOthelloController {
@RequestMapping("/")
public String myothello() {
return "myothello";
}
}
刚才我们导入了 RestController,现在已经改成了 Controller。
创建模板文件。
在Package Explorer中,用鼠标右击”src/main/resources”文件夹,并选择”新建”→”其他”。
打开向导选择页面后,点击”Web”→”HTML文件”,然后点击”下一步”。
在输入文件名的选项中,输入与之前的方法名相同的”myothello”,然后点击”下一步”。
进入HTML模板选择页面,选择”新建HTML文件(5)”,然后点击”完成”。现在已经新建了myothello.html文件,编辑内容如下。
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>myothello</title>
<meta http-equiv="Content-Type" content ="text/html; charset=UTF-8" />
<style>
h1 { font-size:32pt; font-weight:bold; color:green; }
body { font-size:24pt; margin:5px 25px; }
</style>
</head>
<body>
<h1>ぼくのかんがえたさいきょうのおせろ</h1>
<p class="msg">Gradleで作成したオセロアプリです</p>
</body>
</html>
执行后会出现如下界面,尽管还没有棋盘。

顺便说一下,由于我是黑派的源代码编辑器的背景色,所以我在菜单栏的”帮助”→”Eclipse市场”中搜索了”darkest”,并安装了一个叫做”Darkest Dark Theme”的插件。但是,可能是因为我的视力问题,CSS属性值的蓝字非常难看,让我感到绝望。不过,通过”Web”→”CSS文件”→”编辑器”→”语法颜色指定”可以修改颜色,现在看起来非常清晰易读了。真是花了好多时间啊!
一旦结束 ,
这个后续的工作,由于我对HTML的知识非常匮乏,所以我会一边学习一边实现黑白棋界面。总之,我认为最初的难点Gradle的Hello World已经解决了,现在只需全力以赴完成黑白棋应用程序。