为什么dawn需要特殊的开发配置?
dawn使用的是kilim协程,在编码结束后需要进行代码织入。试想,如果每次写完程序,运行代码之前都手工运行一次织入程序,是多么蛋疼的一件事情。更糟糕的是,如果你没掌握织入的技巧,可能就失去了在eclipse调试java代码的机会,开发效率会大大降低。所以,我们可以编写一段ant脚本,让eclipse帮我们自动完成织入。
步骤
我们就拿dawn这个项目做为实例,只要是java工程,基本都是类似的配置。如果你不知道怎么拿到dawn源码可以点击这里:https://github.com/zhmt/dawn/ 开工:
1.编写ant脚本weaver.xml
这是个ant脚本,dawn里已经自带这个脚本,我们看一下内容:
<?xml version="1.0" encoding="UTF-8"?>
<project name="weaver" default="weaving" basedir=".">
<property name="bindir" value="./bin" />
<property name="libdir" value="./libs" />
<path id="clspatth">
<pathelement location="${bindir}" />
<fileset dir="${libdir}">
<include name="**/*.jar" />
</fileset>
<pathelement path="${java.class.path}" />
</path>
<target name="weaving">
<!-- <sleep seconds="2" /> -->
<java classname="kilim.tools.Weaver" fork="yes">
<classpath refid="clspatth" />
<arg value="-d" />
<arg value="${bindir}" />
<arg line="${bindir}" />
</java>
</target>
</project>
这里的目的,就是调用织入程序,扫描bin目录下的class文件,进行织入,把织入结果写入原class文件。
2.右键点击dawn工程,选择属性(Properties),点击Builders选项卡:
3.点击new,创建一个ant builder,设置选择我们刚才看的weaver.xm,并设置 Base directory,
4.切换到Refresh选项卡,如下设置:
5.切换到Targets选项卡,如下设置:
6.点击OK,设置完毕,此时,我们会在Console看到输出,类似下面这样:
7.再把工程编译级别调到1.7,大工告成:
8.我们来验证一下:
运行examples下面的zhmt.dawn.TestFiberSignal,如果不抛出异常,就说明配置成功,我们已经踏入异步编程的大门,准备以更简单的方式编写全异步的java代码吧!
Create mainLoop for Thread[KilimWorker-1,5,main].
2(running=true,pr=null) waiting
3(running=true,pr=null) waiting
signal 1
2(running=true,pr=null) waken
signal 2
3(running=true,pr=null) waken
dawn项目使用kilim协程,为实现代码织入自动化,需要特殊开发配置。通过编写ant脚本并在Eclipse中设置Ant Builder,可以实现自动织入并确保在调试时的便利。配置包括新建Ant Builder,指定脚本路径,配置刷新和目标选项。调整工程编译级别至1.7后,成功运行TestFiberSignal示例则表明配置成功,可开始全异步Java代码的编写。

被折叠的 条评论
为什么被折叠?



