`
fireye83
  • 浏览: 133845 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

使用 生成runnable jar

    博客分类:
  • java
阅读更多
<?xml version="1.0" encoding="UTF-8"?>
<project name="ldapTool" default="all" basedir=".">
	<property name="src.dir" value="src" />
	<property name="src.test.dir" value="test" />
	<property name="classes.dir" value="WebRoot/WEB-INF/classes" />
	<property name="lib.dir" value="WebRoot/WEB-INF/lib" />
	<!-- 用于输出打包的文件夹 -->
	<property name="temp.dir" value="${java.io.tmpdir}/${ant.project.name}" />
	<property name="target.dir" value="target" />
	<property name="jar.CreateXmlFromLdap" value="CreateXmlFromLdap.jar" />
	<property name="jar.RegisterToLdap" value="RegisterToLdap.jar" />

	<!--构造打包时Class-Path需要的路径 -->
	<!--pathconvert用于对目录进行组合 property即这个组合的名字,pathsep作用是各个文件之间的分隔符,  
		如果不写,在windows平台默认是分号。但时在MANIFEST.MF这个文件中,各个jar包之间要用空格区分,  
		因此。这里就写成空格了  
		-->
	<pathconvert property="lib" pathsep=" ">
		<!--mapper,对路径组合方式进行控制-->
		<mapper>
			<!--chainedmapper 作用是联合多个mapper-->
			<chainedmapper>
				<!--过滤文件,将路径去掉,只保留文件名-->
				<flattenmapper />
				<!--过滤+转换器,将所有的文件名前面都加上一个lib,我们知道lib目录下面有jar包,  
		lib/*的作用其实是将jar包名与路径进行组合形成如:lib/google.jar这样的相对路径  
		-->
				<globmapper from="*" to="lib/*" />
			</chainedmapper>
		</mapper>
		<!--按照mapper定义的格式组合lib目录下面的所有jar文件,形成诸如lib/jar1.jar lib/jar2.jar的字符串-->
		<fileset dir="${lib.dir}">
			<include name="*.jar" />
		</fileset>
	</pathconvert>

	<!--组合各个路径,构成MANIFEST.MF文件中Class-Path所需的字符串" . " 表示当前目录-->
	<property name="libs" value=" . ${lib}" />
	<echo>libs ${lib}</echo>
	<!-- 定义classpath -->
	<path id="master-classpath">
		<fileset file="${lib.dir}/*.jar" />
		<pathelement path="${classes.dir}" />
	</path>

	<!-- 创建时间戳 -->
	<tstamp />
	<!-- clean -->
	<target name="clean">
		<delete dir="${classes.dir}" />
		<delete dir="${temp.dir}" />

		<delete file="${target.dir}/${ant.project.name}.jar" />
		<delete file="${target.dir}/${ant.project.name}.war" />
		<delete dir="${target.dir}" />
	</target>
	<!-- 初始化任务 -->
	<target name="init" depends="clean">
		<mkdir dir="${target.dir}" />
		<mkdir dir="${temp.dir}" />
		<mkdir dir="${classes.dir}" />
	</target>
	<!-- 编译 -->
	<target name="compile" depends="init" description="compile the source files">
		<javac srcdir="${src.dir}" destdir="${classes.dir}" debug="true" encoding="UTF-8">
			<classpath refid="master-classpath" />
		</javac>
		<javac srcdir="${src.test.dir}" destdir="${classes.dir}" debug="true" encoding="UTF-8">
			<classpath refid="master-classpath" />
		</javac>
		<!--
		<copy todir="${classes.dir}" overwrite="true">
			<fileset dir="${src.dir}">
				<include name="**/*.xml" />
				<include name="**/*.properties" />
				<include name="**/*.bat" />
			</fileset>
		</copy>
		-->
	</target>
	<!--打jar包-->
	<target name="jar" depends="compile">
		<jar jarfile="${target.dir}/${jar.CreateXmlFromLdap}">
			<fileset dir="${classes.dir}">
				<include name="**/*" />
			</fileset>
			<!--为jar包指定manifest,当然,如果jar包不需要打成runnable的形式,manifest可以不要-->
			<manifest>
				<!--指定Class-Path-->
				<attribute name="Class-Path" value="${libs}" />
				<!--指定main-class-->
				<attribute name="Main-Class" value="com.hikvision.cms.ldap.test.CreateXmlFromLdap" />
			</manifest>
		</jar>
		<jar jarfile="${target.dir}/${jar.RegisterToLdap}">
			<fileset dir="${classes.dir}">
				<include name="**/*" />
			</fileset>
			<!--为jar包指定manifest,当然,如果jar包不需要打成runnable的形式,manifest可以不要-->
			<manifest>
				<!--指定Class-Path-->
				<attribute name="Class-Path" value="${libs}" />
				<!--指定main-class-->
				<attribute name="Main-Class" value="com.hikvision.cms.ldap.test.RegisterToLdap" />
			</manifest>
		</jar>
	</target>

	<!--打 zip 包之前-->
	<target name="preZIP" depends="jar">
		<copy todir="${temp.dir}" overwrite="true">
			<fileset dir="${target.dir}">
				<include name="*.jar" />
			</fileset>
			<fileset dir="${src.dir}">
				<include name="**/*.xml" />
				<include name="**/*.properties" />
				<include name="**/*.bat" />
			</fileset>
		</copy>
		<copy todir="${temp.dir}/lib" overwrite="true">
			<!--<fileset dir="${basedir}">
				<include name="${lib.dir}/*.jar" />
				<include name="index.html" />
				<include name="page/**/*.*" />
				<include name="WEB-INF/*.xml" />
			</fileset>-->
			<fileset dir="${lib.dir}">
				<include name="*.jar" />
			</fileset>
		</copy>
	</target>

	<!--运行一下jar包,试试看效果-->
	<target name="run" depends="preZIP">
		<!--其实这里就是运行jar命令,注意fork一定加上,不然不起作用-->
		<java jar="${temp.dir}/${jar.CreateXmlFromLdap}" fork="true">
		</java>
	</target>

	<!--打zip包-->
	<target name="zip" depends="preZIP">
		<jar jarfile="${target.dir}/${ant.project.name}.zip">
			<fileset dir="${temp.dir}">
				<include name="**/*.*" />
			</fileset>
		</jar>
	</target>

	<target name="all" depends="zip">
		<delete dir="${temp.dir}" />
	</target>
</project>

 

分享到:
评论

相关推荐

    Android代码-一个很好玩儿的 Java 项目,可以直接取图片中的一部分生成二维码。

    How to generate a runnable jar QArt4j is a maven project, run the following command to get a ruunable jar: mvn compile assembly:single This will generate a runnable jar under target/ directory. How to...

    hiero.jar 3.1

    最新hiero.jar(3.1)

    java swing闹钟

    自己以前大二的时候闲暇时候写的,现在对以前的代码进行了整合,...采用mysql数据库工具,数据库文件在根目录下,为了方便各位使用,我同时生成了jar文件,在runnable jar目录下,音频资源文件也在下面。欢迎各位使用。

    java swing计算器

    自己打包写的java swing计算器,我直接生成了runnable jar,可以惊醒加减乘除混合运算,同时支持错误提示。

    pc端视频加密解密

    使用java语言采用swing实现的pc端视频加密和解密程序,加密解密速度很快,实现比较简单。为了便于使用,我同时生成了runnable jar文件,可以在装有jdk的机器上直接双击运行,同时提供了源码程序,便于用于自己修改。

    BaseXRealm:Tomcat 的自定义领域,用户可以在其中存储在 BaseX 集合中

    不要导出 PasswordGenerator.java,它仅用于生成密码将生成的 JAR 文件移动到 %TOMCAT_HOME%/lib/ 将添加到 %TOMCAT_HOME%/lib/ 创建一个如下所示的 BaseX 集合(您可以使用 PasswordGenerator.java 生成盐和散列...

    data-generator:生成和导出随机数据的工具。 通常用于生成大量随机数据以执行负载回归测试

    data-generator-core(用作依赖项)data-generator-runnable(用作独立的jar)。 下载可运行的jar并开始生成和导出数据(请参阅CLI用法和JSON用法): 数据生成器版本 下载链接 1.0.0版本 将数据生成器依赖项添加...

    sia:人工智能系统-工学院学士

    File&gt; Export&gt; Java&gt; Runnable JAR文件选择正在运行的类作为“问题”, 注意:选中“将所需的库提取到生成的JAR中” 然后,您可以使用以下命令运行: $&gt; java -jar 参数: 第一参数,方法策略 BFS DFS IDFS ...

    modaclouds-fg-report:填补差距报告生成器

    MODAClouds FG 记者填补差距报告生成器运行它 java -jar fg-report-&lt;version&gt;.jar dataFile reportFolder其中 dataFile 是 FG Anazer 生成的包含 json 数据的文件,reportFolder 是 FG Reporter 将生成报告的文件夹...

    device-sdk-tools

    也可以将其导出为Runnable JAR并从命令行运行。 运行配置需要两个参数: 生成文件的输出目录名称。 设备服务描述文件。 默认情况下,文件应位于项目根目录中。 工具项目根目录中包含示例。 生成新的设备服务: ...

    java相册源码-VIST-Challenge-NAACL-2018:VISTChallengeNAACL2018的官方Github存储库

    java相册源码NAACL 2018 VIST Challenge 评估脚本 ...您可以下载整个runnable_jar文件夹并在该文件夹中运行EvalVIST.jar 。 runnable_jar/EvalVIST.jar 可运行的 JAR 文件用法 java -jar EvalVIST.jar

    minimum-spanning-tree:最小生成树(Kruskal算法)

    最小生成树Kruskal算法解决最小生成树问题。安装与执行安装Java JDK 1.7 安装Maven3。可以在以下位置进行下载: : 创建JAVA_HOME环境变量,指向安装Java...java -jar minimum-spanning-tree-1.0-SNAPSHOT-runnable.jar

    day020-继承加强和设计模式代码和笔记.rar

    Runnable jar File:可以自己执行的jar包,有main方法 (几乎不用) 要封装为可以执行的jar包,必须先运行一下当前类。 然后在下面写一个jar包的名字,然后选择生成jar包的路径,finish即可 ...

    finger:通过让学生认为他们已被选中但实际上并未选中来欺骗学生

    手指 通过让学生认为他们已经被选中但实际上没有被选中来欺骗学生。... 生成的文件将位于target/finger-${version}-runnable.jar 。 执照 该软件在 GNU GPL 版本 3 下获得许可。您可以在找到许可的全文。

    疯狂JAVA讲义

    6.11 使用JAR文件 234 6.11.1 jar命令详解 235 6.11.2 创建可执行的JAR包 237 6.11.3 关于JAR包的技巧 238 6.12 本章小结 239 本章练习 239 第7章 Java集合 240 7.1 Java集合概述 241 7.2 Collection和...

    Java2实用教程.rar

    9 3使用Runnable接口 9 4线程的常用方法 9 5GUI线程 9 6线程同步 9 7在同步方法中使用wait notif 和nodf3 All 方法 9 8挂起 恢复和终止线程 9 9计时器线程Timer 9 10线程联合 9 11守护线程 习题 第10章输入输出流 10...

    Eclipse权威开发指南3.pdf

    2.2 基本的Eclipse使用...... 20 2.2.1 在Eclipse中工作..... 21 2.2.2 了解Eclipse用户界面..... 22 2.2.3 任务、书签和问题..... 28 2.2.4 后台处理..... 29 2.2.5 Eclipse的帮助功能..... 30 2.3 ...

    Eclipse权威开发指南1.pdf

    2.2 基本的Eclipse使用...... 20 2.2.1 在Eclipse中工作..... 21 2.2.2 了解Eclipse用户界面..... 22 2.2.3 任务、书签和问题..... 28 2.2.4 后台处理..... 29 2.2.5 Eclipse的帮助功能..... 30 2.3 ...

    超级有影响力霸气的Java面试题大全文档

     ArrayList 和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,...

    java 面试题 总结

    ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector...

Global site tag (gtag.js) - Google Analytics