`
zhaoningbo
  • 浏览: 624168 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Zeroc ICE中间件slice2java的ant脚本(v1u0_0)

阅读更多
引言:

    很高兴百度、google上搜到"slice2java ant"时,只有我这一篇帖子。有网友邮件,表示目前版本未能支持"$ slice2java -DIR ..." 这样的句法。今天有点时间,做了一下升级,如有其他问题,欢迎来此追问。中英文均可,不用刻意找翻译工具,好意心领了。

    升级版可以在文尾下载到。
    请留意[modify]**又增加一处,共两处。
    原贴:Zero ICE中间件slice2java的ant脚本

正文:


    本版支持了如下的句法(命令提示符$后无换行是空格):

$ D:\kits\ice\ZeroC\Ice-3.4.1\bin\slice2java  
--output-dir D:\demo\workspace\numberIceSliceDemo\generated 
-ID:\demo\workspace\numberIceSliceDemo\slice
D:\demo\workspace\numberIceSliceDemo\slice\com\number\demoicegrid\simple\Nihao.ice
D:\demo\workspace\numberIceSliceDemo\slice\com\number\except\ExceptionDef.ice


    功能请参看原贴(地址引言提供)。注释比较齐全了~。= 。直接上代码。

    (1)slice2java ant小脚本

<?xml version="1.0" encoding="utf-8"?>
<!--  ================  -->
<!--  Auto slice2java.  -->
<!--    by:zhaoningbo,  -->
<!--    version: v1.0    -->
<!--    email:zhaoningbo@hotmail.com -->
<!--  ================  -->
<project name="autoBuild_slice2java" default="slice2java.compile" basedir=".">

	<!-- defind all parameters -->
	<property name="slice.dir" value="slice">
	</property>
	<property name="generated.dir" value="generated">
	</property>
	<!-- [modify]** Set the SETUP_HOME of the ICE.** -->
	<property name="ice.home.dir" value="D:/kits/ice/ZeroC/Ice-3.4.1">
	</property>
	<!-- [modify]** Set the SLICE_HOME of the ICE.** -->
	<property name="slice.home.dir" value="D:/demo/workspace/numberIceSliceDemo/slice/">
	</property>

	<!-- prepare environment and 'slice2java' command support. -->
	<target name="preDefine" description="Slice: add all prepared defines.">
		<mkdir dir="${generated.dir}" />
		<taskdef name="slice2java" classpath="${ice.home.dir}/lib/ant-ice.jar" classname="Slice2JavaTask">
		</taskdef>
	</target>

	<!-- run slice2java -->
	<target name="slice2java.compile" depends="preDefine" description="Slice: compile all *.ice.">
		<slice2java outputdir="${generated.dir}" includepath="${slice.home.dir}">
			<fileset dir="${slice.dir}">
				<include name="**/*.ice" />
			</fileset>
		</slice2java>
	</target>

	<!-- clear slice2java -->
	<target name="slice2java.clear" description="Slice: delete generated directory to clear *.java from *.ice.">
		<delete includeemptydirs="true">
			<fileset dir="${generated.dir}" includes="**/*">
			</fileset>
		</delete>
	</target>

</project>
<!--          Update Logs                                             -->
<!-- 110729: contain 'includepath' to use the '-IDIR'(the slice2java  -->
<!--         option). now we support the '#incluce <file.ice>' sytax. -->




    (2)测试的slice

    文件“D:\demo\workspace\numberIceSliceDemo\slice\com\number\demoicegrid\simple\Nihao.ice”

/*
 * by:      zhaoningbo
 * date:    2011-07-28 14:32
 */
#ifndef ICEGRID_SIMPLE_HELLO_DEF
#define ICEGRID_SIMPLE_HELLO_DEF

// reference the Exception Definition.
#include <com/number/except/ExceptionDef.ice>
module com{
    module number{
        module demoicegrid{
            module simple{
        
        interface Nihao{
            string sayNihao() throws com::number::except::UGenericException;
            void shutdown();
        };
        
            };
        };
    };
};
#endif


    文件“D:\demo\workspace\numberIceSliceDemo\slice\com\number\except\ExceptionDef.ice”

/*
 * by:      zhaoningbo
 * date:    2011-07-25 15:49
 */
#ifndef EXCEPTION_COMMON_DEF
#define EXCEPTION_COMMON_DEF
module com{
    module number{
        module except{
        
            exception UGenericException{
                string cause;
            };
            
            exception UNullParamException extends UGenericException{
                string msg;
            };
            
        };
    };
};
#endif


说明:

    当:
        (1)slice的*.ice定义中使用#include <fullfilename.ice>不便迁移;
        (2)不便使用“预定义”方式解决(例如如异常不能预定义);
        (3)项目结构复杂,除专人花大量时间外,队友很难维护好按顺序编译;
    时,

    建议参考“$ slice2java -I<DIR> XXX.ice”参数的说明。



    (完结)




   
1
6
分享到:
评论

相关推荐

    Zeroc ICE中间件slice2java的ant脚本

    描述中提到的博文链接,虽然实际内容不可见,但可以推测博主可能分享了一个关于如何使用Ant脚本来调用slice2java工具并自动转换Slice文件为Java代码的过程。这通常涉及到设置Ant任务,配置输入Slice文件路径,指定...

    zeroc ice教程 ice环境配置 Ice中文教程 C++ ICE java ICE ICE入门 ice基础教程 ice开发文档

    Zeroc ICE是一个开源的中间件平台,它支持C++、Java、Python、.NET等语言的分布式对象通信。ICE全称Internet Communications Engine,即互联网通信引擎,是一种用于开发分布式计算应用的强大工具。本文档主要围绕ICE...

    Zeroc ice消息中间件

    Zeroc ICE是一款高效、可扩展的消息中间件,它提供了基于对象的远程方法调用(Remote Method Invocation,RMI)框架,支持多种编程语言,包括C++、Java、Python等。这款中间件允许应用程序在分布式环境中进行透明...

    ZeroC Ice 3.7 手册

    Ice(Internet Communications Engine)是ZeroC公司的杰作,继承了CORBA的血统,是新一代的面向对象的分布式系统中间件。Ice是RPC通讯领域里最稳定、强大、高性能、跨平台、多语言支持的老牌开源中间件,特别适合于...

    Zeroc ICE ( Internet Communications Engine )中间件

    ICE(Internet Communications Engine)是ZeroC提 供的一款高性能的中间件,基于ICE可以实现电信级的解决方案。前面我们提到过在设计网站架构的时候可以使用ICE实现对网站应用的基础对象操作,将基础 对象操作和数据库...

    552404 ZeroC Ice权威指南_ZeroCI_

    ICE是一款跨平台的中间件,由ZeroC公司开发,用于构建分布式系统,支持多种编程语言,如C++、Java、Python等。它提供了高效、安全的网络通信机制,使得应用程序能够轻松地进行跨网络、跨进程的交互。 ICE框架的核心...

    zeroc ice3.4安装2

    zeroc ice3.4安装2 Ice is a modern object-oriented toolkit that enables you to build distributed applications with minimal effort. Ice allows you to focus your efforts on your application logic while ...

    ZeroC ICE原理图

    ZeroC ICE(Internet Communications Engine)是由ZeroC公司开发的一款高性能、跨平台的中间件框架。该框架旨在为分布式应用程序提供一套完整且易于使用的解决方案,使得开发者能够在不同的操作系统、编程语言之间...

    Zeroc ice java eclipse project

    2. `zeroc ice jar`:这是Zeroc ICE的Java库文件,包含了ICE的运行时组件和API,开发者需要引入这个库来使用ICE的功能。 3. `ice.properties`:这是一个配置文件,通常用于配置Zeroc ICE的服务器地址、端口、身份...

    ZeroC Ice3.7 官方手册英文版加注中文书签

    - **语言映射概述(Overview of the Language Mappings)**:详细介绍了Ice支持的各种编程语言(如C++、Java等)与Slice之间的映射关系。 - **客户端和服务端结构(Client and Server Structure)**:描述了如何在...

    ZeroC Ice权威指南

    《ZeroC Ice权威指南》是业界第一本关于Ice这个知名开源分布式RPC中间件的纸质书籍,全书内容涵盖了分布式系统架构概述、RPC原理、Ice基础源码研读、高级进阶、多语言调用、性能调优、SSL安全调用、IceGrid运维与...

    ICE中间件技术详细教程_ICE_中间件_

    ICE(Internet Communication Engine)中间件是一种高性能、跨平台的分布式计算框架,由ZeroC公司开发。这个技术详细教程涵盖了ICE的各个方面,对于初学者来说,是深入理解和掌握ICE的宝贵资源。下面,我们将深入...

    Python库 | zeroc_ice-3.7.0-cp36-cp36m-win_amd64.whl

    标题中的“zeroc_ice-3.7.0-cp36-cp36m-win_amd64.whl”是指ZeroMQ ICE(Inter Process Communication)的一个Python绑定库的特定版本,适用于Python 3.6解释器,并且是为64位Windows系统编译的。ZeroMQ是一个开源的...

    Zeroc_ICE学习大全

    Zeroc ICE(Integration and Communication Environment)是一种高性能、跨平台的中间件,用于构建分布式系统。它提供了一种简单而强大的方式来实现对象间的远程调用,使得开发人员可以像操作本地对象一样操作远程...

    zeroc ICE 3.3.1文档

    - **定义**:ICE(Internet Communications Engine)是一个强大的中间件框架,用于构建高性能、可扩展的分布式应用程序。 - **功能**:ICE支持跨平台通信,能够简化复杂网络环境下的开发工作,提供了一种简单的方式...

    zeroc ICE 3.6

    zeroc ICE 3.6 是一个强大的中间件框架,它主要用于构建分布式系统和实时应用程序。ICE,全称为“Internet Communications Engine”,是由ZeroC公司开发的一种跨平台、高性能的RPC(远程过程调用)框架。这个版本3.6...

    ZeroC Ice3.7 英文版加注中文书签官方手册.zip

    Ice(Internet Communications Engine)是ZeroC公司的杰作,继承了CORBA的血统,是新一代的面向对象的分布式系统中间件。Ice是RPC通讯领域里最稳定、强大、高性能、跨平台、多语言支持的老牌开源中间件,特别适合于...

    ZeroC Ice 3.7.3 源码与中文教程.rar

    Ice 是一种面向对象的中间件平台。从根本上说,这意味着 Ice 为构建面 向对象的客户-服务器应用提供了工具、 API 和库支持。 Ice 应用适合在异 种环境中使用:客户和服务器可以用不同的编程语言编写,可以运行在不 ...

Global site tag (gtag.js) - Google Analytics