引言:
很高兴百度、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”参数的说明。
(完结)
分享到:
相关推荐
描述中提到的博文链接,虽然实际内容不可见,但可以推测博主可能分享了一个关于如何使用Ant脚本来调用slice2java工具并自动转换Slice文件为Java代码的过程。这通常涉及到设置Ant任务,配置输入Slice文件路径,指定...
Zeroc ICE是一个开源的中间件平台,它支持C++、Java、Python、.NET等语言的分布式对象通信。ICE全称Internet Communications Engine,即互联网通信引擎,是一种用于开发分布式计算应用的强大工具。本文档主要围绕ICE...
Zeroc ICE是一款高效、可扩展的消息中间件,它提供了基于对象的远程方法调用(Remote Method Invocation,RMI)框架,支持多种编程语言,包括C++、Java、Python等。这款中间件允许应用程序在分布式环境中进行透明...
Ice(Internet Communications Engine)是ZeroC公司的杰作,继承了CORBA的血统,是新一代的面向对象的分布式系统中间件。Ice是RPC通讯领域里最稳定、强大、高性能、跨平台、多语言支持的老牌开源中间件,特别适合于...
ICE(Internet Communications Engine)是ZeroC提 供的一款高性能的中间件,基于ICE可以实现电信级的解决方案。前面我们提到过在设计网站架构的时候可以使用ICE实现对网站应用的基础对象操作,将基础 对象操作和数据库...
ICE是一款跨平台的中间件,由ZeroC公司开发,用于构建分布式系统,支持多种编程语言,如C++、Java、Python等。它提供了高效、安全的网络通信机制,使得应用程序能够轻松地进行跨网络、跨进程的交互。 ICE框架的核心...
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(Internet Communications Engine)是由ZeroC公司开发的一款高性能、跨平台的中间件框架。该框架旨在为分布式应用程序提供一套完整且易于使用的解决方案,使得开发者能够在不同的操作系统、编程语言之间...
2. `zeroc ice jar`:这是Zeroc ICE的Java库文件,包含了ICE的运行时组件和API,开发者需要引入这个库来使用ICE的功能。 3. `ice.properties`:这是一个配置文件,通常用于配置Zeroc ICE的服务器地址、端口、身份...
- **语言映射概述(Overview of the Language Mappings)**:详细介绍了Ice支持的各种编程语言(如C++、Java等)与Slice之间的映射关系。 - **客户端和服务端结构(Client and Server Structure)**:描述了如何在...
《ZeroC Ice权威指南》是业界第一本关于Ice这个知名开源分布式RPC中间件的纸质书籍,全书内容涵盖了分布式系统架构概述、RPC原理、Ice基础源码研读、高级进阶、多语言调用、性能调优、SSL安全调用、IceGrid运维与...
ICE(Internet Communication Engine)中间件是一种高性能、跨平台的分布式计算框架,由ZeroC公司开发。这个技术详细教程涵盖了ICE的各个方面,对于初学者来说,是深入理解和掌握ICE的宝贵资源。下面,我们将深入...
标题中的“zeroc_ice-3.7.0-cp36-cp36m-win_amd64.whl”是指ZeroMQ ICE(Inter Process Communication)的一个Python绑定库的特定版本,适用于Python 3.6解释器,并且是为64位Windows系统编译的。ZeroMQ是一个开源的...
Zeroc ICE(Integration and Communication Environment)是一种高性能、跨平台的中间件,用于构建分布式系统。它提供了一种简单而强大的方式来实现对象间的远程调用,使得开发人员可以像操作本地对象一样操作远程...
- **定义**:ICE(Internet Communications Engine)是一个强大的中间件框架,用于构建高性能、可扩展的分布式应用程序。 - **功能**:ICE支持跨平台通信,能够简化复杂网络环境下的开发工作,提供了一种简单的方式...
zeroc ICE 3.6 是一个强大的中间件框架,它主要用于构建分布式系统和实时应用程序。ICE,全称为“Internet Communications Engine”,是由ZeroC公司开发的一种跨平台、高性能的RPC(远程过程调用)框架。这个版本3.6...
Ice(Internet Communications Engine)是ZeroC公司的杰作,继承了CORBA的血统,是新一代的面向对象的分布式系统中间件。Ice是RPC通讯领域里最稳定、强大、高性能、跨平台、多语言支持的老牌开源中间件,特别适合于...
Ice 是一种面向对象的中间件平台。从根本上说,这意味着 Ice 为构建面 向对象的客户-服务器应用提供了工具、 API 和库支持。 Ice 应用适合在异 种环境中使用:客户和服务器可以用不同的编程语言编写,可以运行在不 ...