非常急呀。。。怎么用ant 生成 jar 包

wangxiangbo127 2011-01-05 02:08:05
怎么用ant 生成 jar ?ant 我什么都不懂。我只要用它来生成一个jar包。源文件是一个 smslib-v3.5.0.zip。
ant 我也下载下来了,环境变量也配好了。apache-ant-1.8.2 目录下没有build.xml这个文件。我不知道 build.xml 这个文件要写在哪里,里面要配什么,还有怎么执行命令。。。?
请知道生成的高手,帮我解决下。。说详细点
我在网上实在是找不到办法了。搜的答案都他吗是一样的。。
...全文
601 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangxiangbo127 2011-01-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 leonlee985 的回复:]
不太明白你为什么要用ant 来打包,你要打个jar包的话,直接在shell里输入
jar -cvf <jarname>.jar <class-path>
eg.
jar -cvf HelloWorldBean.jar * //在当前路径下把所有文件打包到HelloWorldBean.jar里
ant 里的Task一般就是移动一些文件,生成目录,打包,等等。
[/Quote]
要打个jar包的话,直接在shell里输入
jar -cvf <jarname>.jar <class-path>
eg.
jar -cvf HelloWorldBean.jar * //在当前路径下把所有文件打包到HelloWorldBean.jar里。
这个shell 是什么 jarname 指什么?class-path 指什么?我要打包的文件写哪里?
wangxiangbo127 2011-01-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 chooseforget 的回复:]
我这个脚本是放在项目的根目录下的。所有用的是相对路径。
[/Quote]

请问写了脚本后。用什么执行,怎么执行?
qingyuan18 2011-01-05
  • 打赏
  • 举报
回复
你需要先学习ant的基本知识,如果你有linux/unix下编译的经验,把这个ant看成Java领域里的build程序即可
chooseforget 2011-01-05
  • 打赏
  • 举报
回复
我这个脚本是放在项目的根目录下的。所有用的是相对路径。
chooseforget 2011-01-05
  • 打赏
  • 举报
回复
我写过ant脚本。
build文件在哪里无所谓。关键是要把脚本里的路径写对。

你可以解压那个zip。看看里面是什么结构。如果想用eclipse打包的话,即使不是一个eclipse识别的工程我们也可以手动添加.setting文件夹、.project等文件让eclipse识别。

如果想用ant,那就要自己写一个ant脚本了。


<?xml version="1.0" encoding="UTF-8"?>
<project name="cservice" default="deploy" basedir=".">
<property name="appName" value="cs"/>
<property name="src.dir" value="src"/>
<property name="build.dir" value=".build"/>
<property name="class.dir" value="${build.dir}/tempClasses"/>
<property name="build.jar.dir" value="${build.dir}/lib"/>
<property name="IFsrc.dir" value="../CService30/CsEjbIF/src" />
<property name="ftIFsrc.dir" value="../CService_FT/CsEjbIF_FT/src" />

<property name="lib.dir" value="web/WEB-INF/lib"/>
<property name="resin.lib.dir" value="lib_j2ee"/>

<property name="if.lib.dir" value="../CService30/CsEjbIF/lib"/>
<property name="ftif.lib.dir" value="../CService_FT/CsEjbIF_FT/lib"/>

<property name="webapps.dir" value="${build.dir}/webapps/cs"/>
<property name="webroot.dir" value="web"/>
<fileset dir="${lib.dir}" id="lib.file">
<include name="**/*.jar"></include>
</fileset>


<path id="IF.classpath">
<pathelement location="${class.dir}/if" />
<fileset dir="${if.lib.dir}" includes="*.jar" />
</path>
<path id="ftIF.classpath">
<pathelement location="${class.dir}/ftif" />
<fileset dir="${ftif.lib.dir}" includes="*.jar" />
</path>


<path id="common.classpath">
<pathelement location="${class.dir}/common"/>
<fileset refid="lib.file" />
<fileset dir="${resin.lib.dir}" includes="*.jar"/>
</path>
<path id="cservice.classpath">
<pathelement location="${class.dir}/cservice"/>
<fileset refid="lib.file" />
<fileset dir="${resin.lib.dir}" includes="*.jar"/>
</path>
<path id="sys.classpath">
<pathelement location="${class.dir}/sys"/>
<fileset refid="lib.file" />
<fileset dir="${resin.lib.dir}" includes="*.jar"/>
</path>
<path id="cs.classpath">
<pathelement location="${class.dir}/cs"/>
<fileset refid="lib.file" />
<fileset dir="${resin.lib.dir}" includes="*.jar"/>
</path>
<path id="secondIn.classpath">
<pathelement location="${class.dir}/secondIn"/>
<fileset refid="lib.file" />
<fileset dir="${resin.lib.dir}" includes="*.jar"/>
</path>
<target name="prepare">
<delete dir="${build.dir}" />
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.jar.dir}"/>
<mkdir dir="${webapps.dir}"/>
<mkdir dir="${class.dir}"/>
<mkdir dir="${class.dir}/if"/>
<mkdir dir="${class.dir}/ftif"/>
</target>

<target name="compile" depends="prepare" description="Compile All Java Source">

<javac srcdir="${IFsrc.dir}" destdir="${class.dir}/if" debug="true" encoding="utf-8">
<classpath refid="IF.classpath" />
</javac>
<jar jarfile="${build.jar.dir}/cs-if.jar" basedir="${class.dir}/if" includes="**" excludes="build.xml"/>


<javac srcdir="${ftIFsrc.dir}" destdir="${class.dir}/ftif" debug="true" encoding="utf-8">
<classpath refid="IF.classpath" />
</javac>
<jar jarfile="${build.jar.dir}/cs_ft-if.jar" basedir="${class.dir}/ftif" includes="**" excludes="build.xml"/>


<javac srcdir="${src.dir}/common" destdir="${class.dir}" debug="true">
<classpath refid="common.classpath"/>
</javac>
<javac srcdir="${src.dir}/sys" destdir="${class.dir}" debug="true">
<classpath refid="sys.classpath"/>
</javac>
<javac srcdir="${src.dir}/cservice" destdir="${class.dir}" debug="true">
<classpath refid="cservice.classpath"/>
</javac>
<javac srcdir="${src.dir}/cs" destdir="${class.dir}" debug="true">
<classpath refid="cs.classpath"/>
</javac>
<javac srcdir="${src.dir}/secondIn" destdir="${class.dir}" debug="true" encoding="utf-8">
<classpath refid="secondIn.classpath"/>
</javac>
</target>
<target name="deploy" depends="compile" description="Deploy">
<copy todir="${webapps.dir}">
<fileset dir="${webroot.dir}">
<include name="**/*.*"></include>
</fileset>
</copy>
<delete dir="${webapps.dir}/WEB-INF/classes"/>
<mkdir dir="${webapps.dir}/WEB-INF/classes"/>
<copy todir="${webapps.dir}/WEB-INF/classes">
<fileset dir="${src.dir}/config">
<include name="**/*.*"></include>
</fileset>
</copy>
<delete dir="${webapps.dir}/WEB-INF/tmp" />
<delete dir="${webapps.dir}/WEB-INF/work" />

<delete dir="${webapps.dir}/WEB-INF/lib"/>
<mkdir dir="${webapps.dir}/WEB-INF/lib"/>
<copy todir="${webapps.dir}/WEB-INF/lib">
<fileset dir="${lib.dir}" includes="*.jar"/>
<fileset dir="${build.jar.dir}" includes="*.jar"></fileset>
</copy>
<copy todir="${webapps.dir}/WEB-INF/classes">
<fileset dir="${class.dir}">
<include name="**/*.*"/>
</fileset>
</copy>

<delete dir="${class.dir}"/>

<copy todir="${build.dir}">
<fileset dir="${webapps.dir}"/>
</copy>


<delete dir="${build.dir}/WEB-INF/classes/if"/>
<delete dir="${build.dir}/WEB-INF/classes/ftif"/>
<delete dir="${build.jar.dir}"/>
<delete dir="${build.dir}/webapps"/>
</target>
</project>

这是我写过的一个build脚本。其中<jar jarfile>命令就是打jar包的。
leonlee985 2011-01-05
  • 打赏
  • 举报
回复
不太明白你为什么要用ant 来打包,你要打个jar包的话,直接在shell里输入
jar -cvf <jarname>.jar <class-path>
eg.
jar -cvf HelloWorldBean.jar * //在当前路径下把所有文件打包到HelloWorldBean.jar里
ant 里的Task一般就是移动一些文件,生成目录,打包,等等。
我在肖申克 2011-01-05
  • 打赏
  • 举报
回复
ant很麻烦的, 一个人领悟估计要花些时间
wangxiangbo127 2011-01-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ztglf521 的回复:]
不就是要把项目打成jar包么, 是普通的java项目吧, 直接用eclipse打成jar包
如果你的项目引用了第三方jar包, 那想把这个也打进你的jar包, 那你的eclipse得装个插件
你搜索下net.sf.fjep.fatjar_0.0.31装到eclipse下的插件包就好了
[/Quote]

smslib-v3.5.0.zip(是一个 开发收发短信的包。下载下来是个压缩文件。但项目中用必须要变成JAR包。解压出来我用eclipse 导入项目,是导入不进的,也就是说它不是一个项目。)eclipse下打包我也会。
我在肖申克 2011-01-05
  • 打赏
  • 举报
回复
不就是要把项目打成jar包么, 是普通的java项目吧, 直接用eclipse打成jar包
如果你的项目引用了第三方jar包, 那想把这个也打进你的jar包, 那你的eclipse得装个插件
你搜索下net.sf.fjep.fatjar_0.0.31装到eclipse下的插件包就好了
【重要提示】本资源设置为0积分下载,若非0积分请勿轻易下载 亲爱的CSDN用户: 首先感谢你点进这个资源页面。我需要提前说明一个重要情况: 本资源原本已设置为“0积分下载”,即作者希望完全免费共享。但CSDN平台有时会根据文件的下载热度、文件大小、用户权限等因素,自动将部分资源的积分调整为非0数值(如1积分、2积分、5积分等)。这是平台系统的自动行为,而非作者本人的设定。 因此,如果你当前看到该资源的下载所需积分不是0(例如显示为1、2、3……),请谨慎决定是否下载。 如果你按照非0积分支付并下载后发现资源内容不符合预期、链接失效,或者实际上该资源本应是免费的,作者无法为此承担积分损失或退还操作。强烈建议:仅在页面显示为0积分时进行下载。 另外,本资源描述中并未直接提供具体的下载地址或外部链接,因为它本身是一个通过CSDN官方上传通道提交的文件/内容。如果你看到描述中没有外部网盘地址,这是正常的——资源文件应通过CSDN内置的“下载”按钮获取。若因平台积分显示异常导致你支付了积分,请优先联系CSDN客服咨询积分退还政策,作者没有权限修改平台自动设定的积分值。 感谢你的理解与支持。技术分享本应开放,但受限于平台规则,特此提醒如上。祝学习进步!
内容概要:本文围绕基于改进A*算法的栅格全域覆盖路径规划展开研究,重点实现了螺旋四边收缩遍历、往复行式遍历等多种路径遍历策略,并在Matlab平台上对算法进行了建模与仿真。通过对传统A*算法的优化,提升了路径规划的覆盖率与执行效率,有效解决了全域覆盖过程中存在的路径冗余、搜索效率低等问题,尤其适用于复杂障碍物分布环境下的全局路径规划任务。文中系统阐述了算法的设计原理、关键改进点、实现流程及仿真实验结果,验证了改进算法在实际应用场景中的优越性能。; 适合人群:具备一定Matlab编程能力及路径规划基础知识的科研人员、高校研究生、自动化与机器人相关领域的工程技术人员。; 使用场景及目标:①应用于智能机器人、无人机等自主移动设备在未知或部分已知环境中的全域覆盖任务;②为解决传统A*算法在全覆盖路径规划中存在的效率瓶颈提供可行的技术改进方案;③通过Matlab仿真平台验证算法有效性,辅助科研人员完成算法原型开发与性能评估,推动智能系统路径规划模块的实际落地应用; 阅读建议:建议读者结合文中的Matlab代码进行动手实践,深入理解算法细节,尝试在不同规模与复杂度的栅格地图中测试算法表现,进一步掌握路径规划的核心思想与优化技巧。
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 MAC(媒体访问控制器)与PHY(物理接口收发器)是构成以太网基础架构的两个核心组成部分,它们在数据链路层和物理层中承担着重要功能。以太网技术是计算机网络领域中应用最为广泛的局域网技术之一,其相关标准主要由IEEE通过IEEE 802.3标准来制定,该标准详细规定了从物理层到介质访问控制层的通信协议和规范。MAC主要负责数据链路层的下半部分功能,其核心职责括对网络中的数据传输进行管理,确保数据能够准确无误地在网络中传输。MAC通过评估网络状态来决定是否可以发送数据,并在发送前为数据附加必要的控制信息,最终将数据和控制信息按照标准格式传输至物理层。在接收数据时,MAC协议负责判断数据传输是否出现错误,若无错误则将数据的控制信息剥离后传递给逻辑链路控制(LLC)层。 PHY则负责物理层的具体实现,涵盖了电信号的传输与接收,以及将数据转换为物理信号发送至网络,或将物理信号转换回数据供MAC处理。IEEE 802.3标准对PHY的规范进行了规定,不同速度的PHY,例如10BaseT和100BaseTX,虽然在物理层上具有相同的分组描述,但所采用的信令机制存在差异,10BaseT使用曼彻斯特编码,而100BaseTX采用4B/5B编码,这种设计防止了硬件在不同速度下能够轻易兼容。 媒体独立接口(MII)是用于连接MAC和PHY的标准接口,作为IEEE 802.3定义的一个以太网行业标准,它含了数据接口和管理接口。数据接口运用了两条独立的信道,其中一条用于发送器,另一条用于接收器,每条信道都含数据、时钟和控制信号。总共需要16个信号来实现MII接口,以支持MAC和PHY之间的数据交...

67,535

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧