1.9 共享来自其他Eclipse项目的Java类
Ian Darwin
1.9.1 问题
你希望使用来自另一个项目的类,但是不希望复制和粘贴。
1.9.2 解决方案
添加一个“引用项目”,Eclipse(和DEX)将完成这一工作。
1.9.3 讨论
你往往需要重用来自另一个项目的类。在我的GPS跟踪程序JPSTrack中,Android版本从Java SE版本中借用文件I/O模块等类。你肯定不愿意从一个项目中向另一个项目胡乱地复制和粘贴类,因为这样将无法维护。
在最简单的情况下,当程序库项目包含你希望导入的类的源代码时,你所要做的就是在构建路径上,将包含所需类的项目(在本例中是Java SE版本)声明为引用项目。选择Project(项目)→Properties(属性)→Java Build Path(Java构建路径),再选择Projects(项目)并单击Add(添加)按钮。在图1-16中,添加了SE项目“jpstrack”作为Android项目“jpstrack.android”的依赖关系。
同时为其他平台创建应用程序的移动开发人员应该注意,如果你在Eclipse安装中安装了最新的(2011年底)BlackBerry Java插件,上述技术就无效。这是BlackBerry Java插件的一个缺陷;它错误地将非黑莓项目标志为依赖于非黑莓库项目,并将项目标记为“存在错误”,从而阻止正确的代码生成和执行。解决的方法是删除有缺陷的插件,或者将其放在单独的Eclipse安装中。
另一种方法是:用Ant或者Eclipse向导创建一个JAR文件,在其他项目的classpath设置中将其当作外部JAR引用,也可以将其复制到libs目录中,从那里引用。
还有一种方法是在Project(项目)→Properties(属性)→Android→Library(程序库)下声明一个程序库项目,在同一屏幕的其他项目上使用Add按钮,将程序库项目列为主项目的依赖关系(见图1-17)。这种方法较为新颖,通常更加可靠并且得到官方的推荐,但是仅能用在两个项目都是Android项目的情况。
对于命令行的爱好者,第一种方法涉及.classpath文件的编辑,而第二种方法只要在project.properties文件中创建项目,例如:
# Project target
target=android-7
android.library=false
android.library.reference.1=../wheel
你可能将两个项目都置于源代码控制之下(如果你打算发布这些程序,应该这么做!),所以要记得在发布Android项目时“标记”两个项目,支持源代码控制的原因之一就是你能够重新创建你所发布的内容。
1.9.4 参阅