工具准备
如果需要将ArduBlock导入到Eclipse中,需要一下工具
- Git
- ArduBlock的源代码托管在GitHub上,可以在GitHub上找到在不同操作系统上安装Git工具的教程: https://help.github.com/set-up-git-redirect
- Eclipse
- 当然,要导入Eclipse,那么Eclipse是必需的。可以到Eclipse官网下载:http://www.eclipse.org/
- Maven
- ArduBlock是一个Java开发的工具,我们使用Maven来管理ArduBlock的依赖库。
- M2Eclipse
- 这是个可选项。如果需要开发Openblocks的话,可以在Eclipse中安装Maven的插件,可以提高开发的效率。
准备代码
ArduBlock依赖于Openblocks。所以需要下载两个项目的源代码。首先到代码管理页面下载源代码,两个项目的地址如下:
https://github.com/heqichen/ardublock.git
https://github.com/heqichen/openblocks.git
可以在页面的右侧找到代码克隆的地址。比如,两个项目的地址是 https://github.com/heqichen/ardublock.git Openblocks项目的代码克隆地址是 https://github.com/heqichen/openblocks.git
找到两个源代码克隆之地之后,需要在本机圈定一个开发目录,比如,我的开发目录是~/ardublock/。那么现在,可以打开终端/bash/命令行执行命令来下载源代码。
1 2 3 |
$ cd ~/ardublock/ $ git clone git@github.com:heqichen/ardublock.git $ git clone git@github.com:heqichen/openblocks.git |
执行这两行命令后,可以看到类似下面的内容
Cloning into ‘openblocks’…
remote: Counting objects: 2166, done.
remote: Total 2166 (delta 0), reused 0 (delta 0), pack-reused 2166
Receiving objects: 100% (2166/2166), 4.20 MiB | 6.00 KiB/s, done.
Resolving deltas: 100% (863/863), done.
Checking connectivity… done.
说明已经成功下载了源代码。本机的目录中也出现了两个新的项目文件夹。
导入ArduBlock项目到Eclipse
现在有了源代码,就可以准备将代码导入到Eclipse中。
以下以ArduBlock项目为例,执行下面的命令。
1 2 3 4 5 |
$ cd ardublock # go into ardublock folder $ mvn validate # downlaod maven packages $ mvn clean # $ mvn eclipse:clean # clean eclipse project $ mvn eclipse:eclipse # change project to eclipse project |
执行这些命令,Maven会自动下载ArduBlock所需要的依赖包,并会编译测试。
Maven 的eclipse命令会将目录转换成Eclipse项目,这样就可以直接将项目导入到Eclipse中。如果需要导入Openblocks项目的话,同样的命令也可以在openblocks目录下执行。
打开Eclispe,依次选择
File -> Import -> Gernal -> Existing Projects into Workspace
这样ArduBlock就成功导入到Eclipse中了。但是,导入后可能Eclipse会提示以下的问题。
Eclipse会提示ArduBlock找不到Openblocks库,原因是arduBlock依赖于Openblocks,但是openblocks并没有在本地库中。所以需要在本地库中安装openblocks。
有两种方法解决这个问题
一种方法是直接使用Maven来安装Openblocks
在终端/命令行下,进入openblocks目录,并执行以下命令
1 2 |
$ mvn clean $ mvn install |
这些命令后,Maven会编译并在本机安装openblocks.
看到编译成功后再进入eclipse刷新ardublock项目,就可以看到错误已经消失了。
另一种方法就是也将Openblocks项目导入到Eclipse,并使用Eclipse的Maven插件来管理ArduBlock和Openblocks之间的依赖关系。
只要在openblocks下也同样执行相关maven命令,将openblocks目录转换成eclipse项目,然后导入到eclipse中。
如果eclipse有maven插件,当openblocks代码修改后,会自动更新ardublock的依赖,如果开发openblocks,这样会很方便。
42,320 total views, 2 views today
很详细的教程!
截图中使用的是 1.0.2,但是 ardublock 依赖的是 1.0.3,如何解决呢?
eclipse 报错:
library: ‘E:\maven_repository\edu\mit\openblocks\1.0.3-SNAPSHOT\openblocks-1.0.3-SNAPSHOT.jar’ ardublock
已解决。但是又有新的问题,就是 mvn install 出来的 jar 无法正常运行(但是 eclipse 里面可以运行 main):
C:\Users\Lee>java -jar C:\Users\Lee\Downloads\ardublock-master\target\ardublock-all.jar
Exception in thread “main” java.util.MissingResourceException: Can’t find resource for bundle java.util.PropertyResourceBundle, key bg.xxx_Button_Module
at java.util.ResourceBundle.getObject(Unknown Source)
at java.util.ResourceBundle.getString(Unknown Source)
at edu.mit.blocks.controller.WorkspaceController.ardublockLocalize(WorkspaceController.java:223)
at edu.mit.blocks.controller.WorkspaceController.setLangDefStream(WorkspaceController.java:173)
at com.ardublock.Context.resetWorksapce(Context.java:142)
at com.ardublock.Context.(Context.java:95)
at com.ardublock.Main.startOpenblocksFrame(Main.java:34)
at com.ardublock.Main.startArdublock(Main.java:28)
at com.ardublock.Main.main(Main.java:23)
终于搞定了!
我的 eclipse 默认中文,放到 arduino Tools 文件夹是英文,只需要把 ardublock_zh_CN.properties 修改为 zh_CN 即可。
因为windows mac linux的locale是不同的。。。语言要统一的话,可能要针对不同的操作系统和版本做判断工作
mvn install 只是把当前包编译出来,然后放到本地mvn repo中,
如果要编译运行版本,需要用mvn package,
这样会把所有的依赖库都打包在一起
我修改过openblocks的版本,因为openblocks里面bug太多了,我不断在修bug,但还没有把正在开发的版本放上来,如果出问题的话,自己修改一下版本,统一一下就可以了
求教如何解决
什么问题?
I’m excited about ArduBlock as it’s been helpful teaching programming to elementary-aged kids.
I also appreciate this tutorial, yet I got stuck at the same error: [Project ‘ardublock’ is missing required library: ‘C:\Users\JasonWChan\.m2\repository\edu\mit\openblocks\1.0.3-SNAPSHOT\openblocks-1.0.3-SNAPSHOT.jar’].
How was it solved? Does it matter which Java version we use also? I’m using Java 1.80_60 with Eclipse Mars.1 Release (4.5.1) with Windows 7.
Thanks so much in advance Jason
Sorry, I can only understand English, so I had to use Google-Translator to understand the Chinese.
hi Jason, you can update your local openblocks repo to version 1.0.3.
I see very limited support for Grove modules. Are there a library I can import into Ardublock to expand with additional Grove modules?
In order to prevent some commercial issues, I remove Grove modules from ardublock. sorry
如何将引用openblock1.02改成1.03?
直接更新成最新版就可以了
这个没办法,需要慢慢跟openblocks里面的代码