使用Eclipse编辑LINEBOT的Java示例程序(line-bot-sdk-java)
给定情境
我决定创建一个LINE BOT,并且首先为了练习,我稍微修改了LINE官方提供的LINE BOT Java示例代码(line-bot-sdk-java/sample-spring-boot-kitchensink),并试图将其部署到Heroku上。
在进行修改时,我使用了Eclipse,但是在让Eclipse识别项目(line-bot-sdk-java)时遇到了很大的困难,所以我在此记录下了遇到的问题和解决方法。
环境
-
- Windows 10
-
- Eclipse 4.8.0 → Eclipse 4.15.0 ※
-
- Java 10
-
- Git
- heroku, heroku CLI
由于以下原因,无法使用Eclipse4.8.0,因此更改为Eclipse4.15.0。
问题1:Eclipse无法识别该项目。
我尝试将从Github克隆的项目导入到Eclipse中。
在项目资源管理器中右键单击→导入→导入→选择现有的Gradle项目并点击”下一步”→选择line-bot-sdk-java作为项目根目录并点击”完成”
※在导入时,需要选择【Gradle项目】而不是【Java项目】。如果选择错误,将无法成功导入。
这样一来,虽然【line-bot-sdk-java】作为主项目被识别了,但是【sample-spring-boot-kitchensink】等子项目下的源代码却在项目资源管理器中消失了。
解决策:对build.gradle进行修改。
进一步调查发现,line-bot-sdk-java项目的结构是多项目(即子项目位于父项目下)的构成。
(参考)使用Gradle进行多项目管理。
根据这一点进行调查后,找到了下面的文章。通过向build.gradle添加一行eclipse插件的描述,成功地使Eclipse能够识别所有的子项目。
subprojects {
apply plugin: 'com.github.spotbugs'
apply plugin: 'java-library'
apply plugin: 'checkstyle'
apply plugin: 'io.franzbecker.gradle-lombok'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'eclipse' //この1行を追加する
在使用Spring Boot插件的情况下,我们发现不需要在build.gradle中专门添加eclipse插件的说明,只需正常导入即可成功识别子项目。也许根本原因是我们在没有引入Spring Boot插件的情况下进行了操作?
问 题 2 发生了在认识的项目中的错误。
解决方案1:安装Spring Boot插件
本来是一个Spring Boot应用程序,但却没有在Eclipse中安装Spring Boot插件。
以图解方式简明阐述的《第四章》Spring Tool Suite(STS)插件的安装步骤。
参考了上述的网站后,我尝试引入Spring Boot插件,但是在Eclipse市场中搜索了一番,却没有找到任何插件。经过调查,我发现在Eclipse 4.8.0版本中无法安装该插件。幸运的是,我安装了Eclipse 4.15.0版本后,成功地引入了Spring Boot插件。
尽管现在可以在Spring Boot应用程序上运行,但是错误仍然存在,即使点击“在Spring Boot应用程序上运行”也无法构建成功,无法执行。
解决方案2:安装Lombok插件
(找到这个解决方案真是费了好大劲、、、)
出现错误的地方大多数是因为没有定义特定方法,比如没有定义getter方法。据查,似乎有一个叫做”Lombok”的工具可以在编译时自动生成getter、setter、ToString等方法。
(参考)Lombok 使用指南备忘录
我觉得这很可疑,然后按照下面文章中所述的步骤安装Lombok插件,错误就消失了。
(安装步骤) Lombok ① 导入编辑
顺便提一下,我尝试安装最新版本1.18.12的Lombok插件时,还留下了一些错误。我将build.gradle中的版本改为1.18.10后重新安装,之前剩余的错误也消失了。
【备注】.gitignore文件的内容
不管是【让Eclipse识别项目】,与以下内容无直接关系,但如果不在.gitignore文件中记录以下内容,在部署到heroku或github时,可能会包含Eclipse特定的文件等,以避免这种情况发生,我们在文件中添加了以下内容。
/.gradle/
/.gitignore
/.classpath
/.project
/.settings
/bin
/build
/*/.classpath
/*/.project
/*/.settings
/*/bin
/*/build
相关文章
上一篇文章在这里
LINEBOT的Java示例程序(line-bot-sdk-java)在部署过程中出现了问题。