基于以下几种场景,你很可能需要自己的haxelib
* 希望为haxe开源社区做贡献,把自己的代码分享给所有人
* 本地私有库,要被若干个项目共用,但基于目录复制的代码级重用很笨拙,而且难以维护
下面就从我自己的实际需求出发,总结一下创建与分享一个haxelib库的步骤。
首先,假定我的haxelib名称为myhaxelib,在自己工作空间创建myhaxelib目录
在此目录下建立两个目录:
dev: 这是库的实际工作目录,包括源代码、文档、例程等,但注意,源代码目录不应该放在src子目录下,而应直接放在dev的根目录下,这点和我们的普通项目不一致。同时这个目录也将作为myhaxelib的开发版目录(用haxelib dev设置)。例子如下:
+dev
--+com
----+company
------+libname
---------Source1.hx
---------Source2.hx
--+docs
--+samples
----+01-HelloWorld
----+02-Demo
---haxelib.xml
release: 这个目录用来保存提交前打包需要的所有文件
haxelib.xml文件内容很简单,例子如下:
<project name="myhaxelib" url="https://github.com/myusername/myhaxelib" license="BSD">
<user name="myusername"/>
<tag v="cross"/>
<tag v="dom"/>
<description>My test haxelib</description>
<version name="1.0">Initial version.</version>
</project>
只要有了这个目录结构,就可以把haxelib部署到本地了,具体方法为:
* 把dev目录下所有希望提交的文件复制到release目录(注意samples目录下的项目中如果有构建输出文件,一定要删除,尤其是cpp目标的输出文件很庞大)
* 打个zip包,注意不要把release目录打进去,zip包中的目录结构应如:
+com
+docs
+samples
-haxelib.xml
* 用haxelib test myhaxelib.zip来把此包部署到本地,在haxelib 1.04以后,这个命令则需改为haxelib local myhaxelib.zip
* 这时候你浏览<Haxe_dir>/lib/目录,会发现你的haxelib已经出现在里面了,也就是可以当成普通haxelib一样使用了
* 用haxelib dev path/to/myhaxelib/dev把你的库工作目录设为开发版haxelib目录,这样你在库中的修改就能对引用该库的所有项目即时生效了
接下来你可以用你的本地开发版haxelib来开发例程或在其它项目中引用,
具体分两种情况,在命令行构建及在IDEA等开发环境中构建
在命令行构建仅依赖于前一步的haxelib dev path/to/myhaxelib/dev设置
在IDEA中,则需要添加全局库,并指向你的开发工作目录
在库稳定后,如果希望把库分享到开源社区,则可以重新打包,然后用haxelib submit myhaxelib.zip的方式来提交到haxelib仓库。
提交过程中,如果haxelib中的user尚未提交过任何haxelib,则会提示你输入密码及确认,否则则会提示你输入user的密码
如果希望提交新版本,只要修改haxelib.xml中的下面一行即可:
<version name="1.0">Initial version.</version>
设定新的版本号并修改版本说明