简体   繁体   English

如何用蚂蚁添加外部罐子?

[英]How to add external jars with ant?

I am trying to figure out how to add external jars with Ant. 我试图弄清楚如何用Ant添加外部jar。

I made this simple project with NetBeans that "uses" an external library (gson 2.3.1): 我使用“使用”外部库(gson 2.3.1)的NetBeans创建了一个简单的项目: 格森

This is how the project looks in filesystem (the Gson jar is in 'lib'): 这是项目在文件系统中的外观(Gson jar位于“ lib”中): 在此处输入图片说明

And this is the build.xml: 这是build.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project name="Project" default="main" basedir=".">

    <property name="lib.dir" location="lib" />
    <property name="src.dir" location="src" />
    <property name="build.dir" location="build" />
    <property name="classes.dir" location="${build.dir}/classes" />
    <property name="jar.dir" location="${build.dir}/jar" />

    <target name="main" depends="execute">
        <echo message="targets completed" />
    </target>

    <target name="execute" depends="jar">
        <java jar="${jar.dir}/${ant.project.name}.jar" fork="true" />
    </target>

    <target name="jar" depends="compile">
        <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
            <manifest>
                <attribute name="Main-Class" value="project.Project"/>
            </manifest>
        </jar>
    </target>

    <target name="compile" depends="makedir">
        <javac srcdir="${src.dir}" destdir="${classes.dir}">
            <classpath>
                <path>
                    <fileset dir="${lib.dir}">
                        <include name="**/*.jar" />
                    </fileset>
                </path>
            </classpath>
        </javac>
    </target>

    <target name="makedir" depends="clean">
        <mkdir dir="${build.dir}" />
        <mkdir dir="${classes.dir}" />
        <mkdir dir="${jar.dir}" />
    </target>

    <target name="clean">
        <delete dir="${build.dir}" />
    </target>

</project>

If I run this with Ant I get exception [java] Exception in thread "main" java.lang.NoClassDefFoundError: com/google/gson/Gson from 'execute' target. 如果我使用Ant运行它, [java] Exception in thread "main" java.lang.NoClassDefFoundError: com/google/gson/Gson从“执行”目标中获取异常[java] Exception in thread "main" java.lang.NoClassDefFoundError: com/google/gson/Gson What is wrong? 怎么了?

您将需要在jar目标中添加以下内容

<zipgroupfileset dir="${lib-dir}" includes="**/*.jar"/>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM