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

用Ant打Jar包--在Manifest中引用Classpath

    博客分类:
  • ant
阅读更多

 

在打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" />

             <mapper>
                    <chainedmapper>
                        <!-- 移除绝对路径 -->
                        <flattenmapper />
                        <!-- 加上lib前缀 -->
                        <globmapper from="*" to="lib/*" />
                    </chainedmapper>
                </mapper>

         </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格式

分享到:
评论

相关推荐

    ant打jar包时, 怎么把所依赖的jar包与从源码中编译过来class文件合并成最终的一个jar?

    在Java开发过程中,将源代码编译为class文件并打包成jar是常见的步骤。当我们有多个jar包相互依赖时,需要将它们合并成一个单一的jar,以便于部署和使用。Ant是一个流行的Java构建工具,它允许我们通过配置XML文件...

    ant 将依赖的jar包和classes文件一起打成可执行jar

    标题中的“ant将依赖的jar包和classes文件一起打成可执行jar”指的是使用Apache Ant工具来构建一个包含依赖库和编译后类文件的Java应用程序可执行JAR文件。Ant是一个基于XML的构建工具,它允许开发者通过定义任务来...

    ant打jar包以及制作成bat文件双击运行

    在IT行业中,构建和部署Java应用程序的过程中,我们经常会用到Ant和jar包。Ant是一个开源的构建工具,它使用XML来定义项目构建的步骤和依赖关系。本文将深入讲解如何使用Ant来打包Java项目为jar文件,并进一步将其...

    ant打包hadoop-eclipse-plugin

    在本文中,我们将深入探讨如何使用Apache Ant工具在Windows环境下打包Hadoop-eclipse-plugin,这是一个允许开发者在Eclipse IDE中创建和调试Hadoop MapReduce项目的插件。以下是详细步骤: 首先,你需要下载Apache ...

    生成JAR包及包的运行.doc

    - 在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项目提供的...

    java ant打包jar

    如果你的项目使用了Subversion进行版本控制,你可能需要将这个库添加到Ant的classpath中,以便在构建过程中进行版本控制操作。 总之,Java Ant是一个强大的工具,能够帮助开发者自动化Java项目的构建过程,包括打包...

    打jar包方法

    在本文中,我们将使用 Eclipse 的导出功能来打 Jar 包。 三、打 Jar 包步骤 1. 选中包所在的工程,点击鼠标右键,选择「导出」。 2. 在「导出」对话框中,选择「Java」→「JAR 文件」。 3. 在「JAR 文件」对话框中...

    【Ant】Ant实例(1)一个Java文件依赖于某jar包,需要打包部署

    【Ant】Ant实例(1)一个Java文件依赖于...在处理Java文件依赖于jar包的场景时,可以通过设置classpath和manifest来确保正确运行。通过理解并掌握Ant的工作原理和配置方式,可以提高开发效率,简化项目的构建和部署过程。

    ant 脚本从svn上取代码打包代码全,同时包括相关的jar包

    在给定的场景中,"ant 脚本从svn上取代码打包代码全,同时包括相关的jar包",这意味着我们需要了解如何用Ant配合Subversion(SVN)进行代码管理,并打包项目,同时处理依赖的jar文件。 首先,让我们来看看Ant脚本的...

    ant编译依赖包

    总的来说,使用Ant编译Java项目并创建jar包,你需要编写一个包含`&lt;javac&gt;`和`&lt;jar&gt;`任务的构建文件,同时可以利用Ivy管理依赖,Emma生成测试覆盖率报告,以及Ant Contrib中的额外任务来增强Ant的功能。通过这种方式...

    eclipse 打包 jar 碰到的问题(包含第三方包)

    在Ant中,可以使用`&lt;jar&gt;`任务配合`&lt;fileset&gt;`来包含lib目录下的所有jar;在Maven中,可以使用`maven-assembly-plugin`或`maven-shade-plugin`来生成包含所有依赖的单个JAR。 5. **使用Gradle**: 对于使用Gradle...

    jar包2jar包2jar包2jar包2jar包2

    标题中的“jar包2jar包2jar包2jar包2jar包2”可能是在强调jar包的重要性或者表示这是一个关于处理多个jar包的问题。描述中的重复同样表明了与jar包相关的主题,但没有提供具体细节,可能是涉及到jar包的合并、打包、...

    fatjar打包工具

    在使用FatJar时,你需要在你的Ant构建脚本中引入FatJar插件。通常,这涉及到在`build.xml`文件中添加一个任务定义,例如: ```xml &lt;taskdef name="fatjar" classname=...

    Ant入门教程,使用Ant自动生成JAR文件

    你可以使用`&lt;classpath&gt;`元素来指定类路径,`&lt;fileset&gt;`来选择一组文件,`&lt;manifest&gt;`来定制JAR文件的清单信息。 此外,Ant还可以通过`&lt;import&gt;`引入其他构建文件,实现模块化构建。还有`&lt;condition&gt;`来实现条件...

    ant学习打包代码

    &lt;taskdef name="myTaskExample" classname="com.ant.tool.extend.AntTasks" classpath="bin" /&gt; &lt;!--引用自定标签的name myTaskExample--&gt; &lt;!--用echo显示各种的属性--&gt; 当前系统的用户名:${user....

    使用ant打一个包

    在“使用ant打一个包”的场景中,我们需要理解`build.xml`的结构和任务配置,以及如何利用Ant的特性来完成编译、打包等操作。尽管现代有许多其他构建工具,如Maven和Gradle,但Ant的灵活性和可定制性使其在某些特定...

    eclipse中工程打jar包工具及其用法

    - 重启Eclipse,如果fatjar插件安装成功,你应该能在`Window`菜单中找到`Preferences`,然后依次展开`Ant` -&gt; `Fat Jar Preferences`,这表示插件已经加载。 3. **打包步骤**: - 选择你需要打包的Java工程,右键...

    ant打包及整合质量控制插件

    要在Ant中使用它们,我们需要引入相应的Ant任务库,如`pmd`和`checkstyle`。这通常通过添加`&lt;taskdef&gt;`元素来完成: ```xml &lt;taskdef resource="net/sf/antcontrib/antlib.xml" classpath="lib/ant-contrib.jar"/&gt; ...

    使用ant编译打包应用程序

    -- 运行程序,传入参数 --&gt; &lt;target name="run" depends="jar"&gt;  &lt;classpath&gt; ${dist.dir}/sample.jar" /&gt; &lt;path refid="run.classpath" /&gt; &lt;/classpath&gt; 你好,Ant!" /&gt;  程序运行结束  &lt;!-- 默认任务,...

    ant 学习与总结

    - 在系统环境变量中添加 `Path` 变量,确保包含 `%ANT_HOME%\bin`。 - 配置 `JAVA_HOME` 环境变量指向 JDK 的安装路径,确保 Ant 正常运行。 3. **验证安装**: - 打开命令行窗口,输入 `ant -version` 查看 Ant...

Global site tag (gtag.js) - Google Analytics