ant build.xml 从 Eclipse 工作,但不能通过命令行

时间:2021-03-17 07:29:59

标签: java eclipse ant

我有以下 ant 文件,它在使用 Eclipse 中的 Run as Ant 文件 运行时构建相应的 jar 文件。注意ant xml文件中没有编译javac任务。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="create_run_jar" name="Create Runnable Jar for Project Gitlab Interface">
    <!--this file was created by Eclipse Runnable JAR Export Wizard-->
    <!--ANT 1.7 is required                                        -->
            
    <target name="create_run_jar">          
            <fileset dir="${basedir}/bin"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/gitlab4j-api-4.14.31.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/aopalliance-repackaged-2.6.1.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/apiguardian-api-1.1.0.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/byte-buddy-1.10.5.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/byte-buddy-agent-1.10.5.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/commons-codec-1.11.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/commons-io-2.4.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/commons-logging-1.2.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/hamcrest-all-1.3.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/hamcrest-core-1.3.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/hamcrest-library-1.3.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/hk2-api-2.6.1.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/hk2-locator-2.6.1.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/hk2-utils-2.6.1.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/httpclient-4.5.9.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/httpcore-4.4.11.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jackson-annotations-2.10.3.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jackson-core-2.10.3.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jackson-databind-2.10.3.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jackson-jaxrs-base-2.10.3.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jackson-jaxrs-json-provider-2.10.3.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jackson-module-jaxb-annotations-2.10.3.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jakarta.activation-api-1.2.2.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jakarta.annotation-api-1.3.5.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jakarta.inject-2.6.1.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jakarta.servlet-api-4.0.3.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jakarta.ws.rs-api-2.1.6.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jakarta.xml.bind-api-2.3.2.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/javassist-3.25.0-GA.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jersey-apache-connector-2.30.1.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jersey-client-2.30.1.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jersey-common-2.30.1.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jersey-hk2-2.30.1.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jersey-media-multipart-2.30.1.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/junit-4.13.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/junit-platform-commons-1.6.0.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/junit-platform-engine-1.6.0.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/junit-toolbox-2.4.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/junit-vintage-engine-5.6.0.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/mimepull-1.9.11.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/mockito-core-3.3.0.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/objenesis-2.6.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/opentest4j-1.2.0.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/osgi-resource-locator-1.0.3.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/system-rules-1.19.0.jar"/>
        </jar>
    </target>
</project>

后来,我们注意到当我通过 ant -f xxx/build.xml 运行相同的东西时,ant 构建失败,指出没有 bin 文件夹。当我检查我编写的 build.xml 时,很容易理解为什么会失败。有一个任务 <fileset dir="${basedir}/bin"/ 而没有 bin 文件夹。所以我更正了上面的构建文件,如下所示。这样,命令行的构建就通过了。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="create_run_jar" name="Create Runnable Jar for Project ASML_TCNXBOT_Gitlab_Interface">
    <!--this file was created by Eclipse Runnable JAR Export Wizard-->
    <!--ANT 1.7 is required                                        -->
    <property name="javac.target" value="1.7" />
    <property name="src" location="${basedir}/src"/>
    
    <target name="create_run_jar">
        <!-- do the comilation of the source files -->
        <mkdir dir="${basedir}/bin"/>
        <mkdir dir="${basedir}/output"/>
        <javac destdir="${basedir}/bin" debug="true" srcdir="${src}"
                    source="${javac.target}" target="${javac.target}">
            <classpath refid="build.classpath"/>
        </javac>

        <!-- build a jar out of the compiled class files along with their dependencies -->
        <jar destfile="${basedir}/output/ASML_TCNXBOT_AddGL.jar" filesetmanifest="mergewithoutmain">
            <manifest>
                <attribute name="Main-Class" value="com.asml.GitLab.Interface.AddGL.ASML_TCNXBOT_Gitlab_Interface"/>
                <attribute name="Class-Path" value="."/>
            </manifest>
            <fileset dir="${basedir}/bin"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/gitlab4j-api-4.14.31.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/aopalliance-repackaged-2.6.1.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/apiguardian-api-1.1.0.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/byte-buddy-1.10.5.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/byte-buddy-agent-1.10.5.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/commons-codec-1.11.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/commons-io-2.4.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/commons-logging-1.2.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/hamcrest-all-1.3.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/hamcrest-core-1.3.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/hamcrest-library-1.3.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/hk2-api-2.6.1.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/hk2-locator-2.6.1.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/hk2-utils-2.6.1.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/httpclient-4.5.9.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/httpcore-4.4.11.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jackson-annotations-2.10.3.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jackson-core-2.10.3.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jackson-databind-2.10.3.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jackson-jaxrs-base-2.10.3.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jackson-jaxrs-json-provider-2.10.3.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jackson-module-jaxb-annotations-2.10.3.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jakarta.activation-api-1.2.2.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jakarta.annotation-api-1.3.5.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jakarta.inject-2.6.1.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jakarta.servlet-api-4.0.3.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jakarta.ws.rs-api-2.1.6.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jakarta.xml.bind-api-2.3.2.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/javassist-3.25.0-GA.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jersey-apache-connector-2.30.1.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jersey-client-2.30.1.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jersey-common-2.30.1.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jersey-hk2-2.30.1.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/jersey-media-multipart-2.30.1.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/junit-4.13.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/junit-platform-commons-1.6.0.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/junit-platform-engine-1.6.0.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/junit-toolbox-2.4.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/junit-vintage-engine-5.6.0.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/mimepull-1.9.11.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/mockito-core-3.3.0.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/objenesis-2.6.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/opentest4j-1.2.0.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/osgi-resource-locator-1.0.3.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="${basedir}/jars/target/dependency/system-rules-1.19.0.jar"/>
        </jar>
    </target>
</project>

我可以理解 eclipse 可能在幕后进行编译,但如果是这种情况,如何确保编写一次的 ant 文件将以相同的方式在任何地方运行?回想起来,触发手动 ant -f xx/build.xml 是最好的。但是想知道任何与蚂蚁有关的细微之处,我可以随时关注。

谢谢, 帕万。

0 个答案:

没有答案
相关问题