快速业务通道

在异构UNIX系统间可靠的迁移Java应用 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17

在异构UNIX系统间可靠的迁移Java应用

时间:2011-04-16 IBM Shen Yu

引言

使用 Java Native Interface (JNI) 编写 Java™ 应用程序可能充满挑战。C/C++ 代码比较复杂,并且维护其构建系统也是一项非常烦琐的任务。当基础平台的数量增加时, 如果不经过精心设计,整个构建系统可能会变得一团糟。有一种选择是,为每种平台构造一 种单独的构建系统,尽管从软件工程的角度来说,这样做不是很合适并且可能带来很大的麻 烦。

要确保能够移植到许多异类 UNIX® 平台,那么构建系统必须是可插入的。通过集成 Apache Ant、GNU Compiler Collection (GCC)、Make 和 Subversion,您可以创建一个功能 强大的构建系统。应该将构建系统组件化,这样一来,为新的组件添加或删除新的平台支持 就非常简单。它还应该使用各种技术以便自动地检测当前的平台,然后调用相应平台特定的 构建组件。本文介绍了如何构造这样的系统,您将学习到下面的内容:

集成 Ant、GCC、Make 和 Subversion

设计可插入的和可移植的构建系统及其源代码布局

在设计本地构建组件时,描述值得注意的 GCC 标志

自动检测当前构建环境,并设计任务依赖关系

集成 Ant、GCC、Make 和 Subversion

本文中的构建环境涉及到许多开放源代码工具(请参见参考资料部分以进行下载):

Ant

Java Development Kit (JDK)

GCC

Make

Subversion

图 1 中显示了这个构建环境。Ant 主要负责:

检索代码到本地工作位置

调用 JDK 编译 Java 代码

调用 Make 构建本地代码

图 1. 构建环境

在异构UNIX系统间可靠的迁移Java应用 - 编程入门网

在异构UNIX系统间可靠的迁移Java应用(2)

时间:2011-04-16 IBM Shen Yu

获得源代码并控制构建版本

可以使用 Ant 和 Subversion 的组合来检索源代码,并同时控制构建版本。在开发周期 中,构建的工作将重复很多次。如果每次都需要手动地指定一个构建版本,那将是非常麻烦 的。清单 1 中的构建脚本用于提取 SVN 版本编号,并使用它作为构建编号。

清单 1. Ant 任务:管理构建版本

1  <target name="svn-prop"> 2   <exec executable="svn"> 3    <arg value="--non-interactive"/> 4    <arg value="info"/> 5    <redirector outputproperty="svn.revision"> 6     <outputfilterchain> 7      <linecontains> 8       <contains value="Revision:"/> 9      </linecontains> 10      <tokenfilter> 11       <replacestring from="Revision:" to=""/> 12      </tokenfilter> 13     </outputfilterchain> 14    </redirector> 15   </exec> 16   <!--<echo>${svn.revision}</echo>--> 17  </target>

在执行这项任务的时候,会将 SVN 版本编号提取到 Ant 的 svn.revision 属性中。稍后 可以使用这个属性作为构建编号。这个任务只能够处理英文版本 SVN,因为 linecontains 筛选器仅检查该行内容中是否包含 Revision:。

另一项任务是从 SVN 存储库中检索源代码。下面的清单 2、3 和 4 显示了检索源代码的 任务。

清单 2. Ant 任务:检查该存储库是否已经签出

1  <target name="svn-check"> 2   <available type="dir" property="svn.check" file="${local.url}"> 3   <echo>${svn.check}</echo> 4  </target>

清单 3. Ant 任务:检索源代码

1  <target name="svn-checkout" unless=

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号