在打jar包时,往往需要在manifest文件中设置Class-Path,包含一些依赖的第三方jar包,使得以“java -jar xxx.jar”方式启动的jar包能正确找到依赖的类。
网上大多演示使用打jar包的例子都是像这样的:
<target name="jar" >
<jar destfile="${dest.jar}">
<fileset dir="${source.class}">
<include name="**/*.class"/>
</fileset>
<manifest>
<attribute name="Main-Class" value="${mianclass}"/>
<attribute name="Class-Path" value="xxxx.jar xxxx.jar xxxx.jar xxxx.jar"/>
</manifest>
</jar>
在依赖的jar包比较多的情况下,手工设置所有的jar包是非常令人崩溃而且容易出错的事情。一旦引用的外部jar包有变动,还需要到这里维护,时间一长,可能就会忘记。
经过一番查找,发现了一种配置:
<path id="classpath">
<fileset dir="${lib}" include="**/*.jar"/>
</path>
<target name="jar" depends="compile">
<pathconvert property="mf.classpath" pathsep=" ">
<path refid="classpath" />
<flattenmapper />
</pathconvert>
<jar destfile="${dest.jar}">
<fileset dir="${source.class}">
<include name="**/*.class"/>
</fileset>
<manifest>
<attribute name="Main-Class" value="${mainclass}"/>
<attribute name="Class-Path" value="${mf.classpath} "/>
</manifest>
</jar>
可以把classpath中的jar包,转换成jar Class-Path格式,终于可以不用写那一堆恼人的“xxxx.jar”了,Ant1.6.2及以上版本有效,还有一遍文章也介绍了这种方法:http://www.guydavis.ca/log/view.jsp?id=851
你还可以移步到此浏览本文章:http://popopa.com/entry/id/c24538022776a51301277796505d0018.html
分享到:
相关推荐
在Java开发过程中,将源代码编译为class文件并打包成jar是常见的步骤。当我们有多个jar包相互依赖时,需要将它们合并成一个单一的jar,以便于部署和使用。Ant是一个流行的Java构建工具,它允许我们通过配置XML文件...
标题中的“ant将依赖的jar包和classes文件一起打成可执行jar”指的是使用Apache Ant工具来构建一个包含依赖库和编译后类文件的Java应用程序可执行JAR文件。Ant是一个基于XML的构建工具,它允许开发者通过定义任务来...
在IT行业中,构建和部署Java应用程序的过程中,我们经常会用到Ant和jar包。Ant是一个开源的构建工具,它使用XML来定义项目构建的步骤和依赖关系。本文将深入讲解如何使用Ant来打包Java项目为jar文件,并进一步将其...
在本文中,我们将深入探讨如何使用Apache Ant工具在Windows环境下打包Hadoop-eclipse-plugin,这是一个允许开发者在Eclipse IDE中创建和调试Hadoop MapReduce项目的插件。以下是详细步骤: 首先,你需要下载Apache ...
- 在MANIFEST.MF中指定`Class-Path`,然后直接使用`java -jar`: ```bash Manifest-Version: 1.0 Class-Path: a.jar b.jar c.jar Main-Class: com.test.Test ``` 7. **Ant工具**: - Ant是Apache项目提供的...
如果你的项目使用了Subversion进行版本控制,你可能需要将这个库添加到Ant的classpath中,以便在构建过程中进行版本控制操作。 总之,Java Ant是一个强大的工具,能够帮助开发者自动化Java项目的构建过程,包括打包...
在本文中,我们将使用 Eclipse 的导出功能来打 Jar 包。 三、打 Jar 包步骤 1. 选中包所在的工程,点击鼠标右键,选择「导出」。 2. 在「导出」对话框中,选择「Java」→「JAR 文件」。 3. 在「JAR 文件」对话框中...
【Ant】Ant实例(1)一个Java文件依赖于...在处理Java文件依赖于jar包的场景时,可以通过设置classpath和manifest来确保正确运行。通过理解并掌握Ant的工作原理和配置方式,可以提高开发效率,简化项目的构建和部署过程。
在给定的场景中,"ant 脚本从svn上取代码打包代码全,同时包括相关的jar包",这意味着我们需要了解如何用Ant配合Subversion(SVN)进行代码管理,并打包项目,同时处理依赖的jar文件。 首先,让我们来看看Ant脚本的...
总的来说,使用Ant编译Java项目并创建jar包,你需要编写一个包含`<javac>`和`<jar>`任务的构建文件,同时可以利用Ivy管理依赖,Emma生成测试覆盖率报告,以及Ant Contrib中的额外任务来增强Ant的功能。通过这种方式...
在Ant中,可以使用`<jar>`任务配合`<fileset>`来包含lib目录下的所有jar;在Maven中,可以使用`maven-assembly-plugin`或`maven-shade-plugin`来生成包含所有依赖的单个JAR。 5. **使用Gradle**: 对于使用Gradle...
标题中的“jar包2jar包2jar包2jar包2jar包2”可能是在强调jar包的重要性或者表示这是一个关于处理多个jar包的问题。描述中的重复同样表明了与jar包相关的主题,但没有提供具体细节,可能是涉及到jar包的合并、打包、...
在使用FatJar时,你需要在你的Ant构建脚本中引入FatJar插件。通常,这涉及到在`build.xml`文件中添加一个任务定义,例如: ```xml <taskdef name="fatjar" classname=...
你可以使用`<classpath>`元素来指定类路径,`<fileset>`来选择一组文件,`<manifest>`来定制JAR文件的清单信息。 此外,Ant还可以通过`<import>`引入其他构建文件,实现模块化构建。还有`<condition>`来实现条件...
<taskdef name="myTaskExample" classname="com.ant.tool.extend.AntTasks" classpath="bin" /> <!--引用自定标签的name myTaskExample--> <!--用echo显示各种的属性--> 当前系统的用户名:${user....
在“使用ant打一个包”的场景中,我们需要理解`build.xml`的结构和任务配置,以及如何利用Ant的特性来完成编译、打包等操作。尽管现代有许多其他构建工具,如Maven和Gradle,但Ant的灵活性和可定制性使其在某些特定...
- 重启Eclipse,如果fatjar插件安装成功,你应该能在`Window`菜单中找到`Preferences`,然后依次展开`Ant` -> `Fat Jar Preferences`,这表示插件已经加载。 3. **打包步骤**: - 选择你需要打包的Java工程,右键...
要在Ant中使用它们,我们需要引入相应的Ant任务库,如`pmd`和`checkstyle`。这通常通过添加`<taskdef>`元素来完成: ```xml <taskdef resource="net/sf/antcontrib/antlib.xml" classpath="lib/ant-contrib.jar"/> ...
-- 运行程序,传入参数 --> <target name="run" depends="jar"> <classpath> ${dist.dir}/sample.jar" /> <path refid="run.classpath" /> </classpath> 你好,Ant!" /> 程序运行结束 <!-- 默认任务,...
- 在系统环境变量中添加 `Path` 变量,确保包含 `%ANT_HOME%\bin`。 - 配置 `JAVA_HOME` 环境变量指向 JDK 的安装路径,确保 Ant 正常运行。 3. **验证安装**: - 打开命令行窗口,输入 `ant -version` 查看 Ant...