Ant构建不会生成jar文件

时间:2013-02-08 22:37:29

标签: java ant build jar

从2000年开始使用旧脚本。 它全部都在Java中,并且有一个构建文件可以编译所有内容:

 <?xml version="1.0"?>
    <project name="chat" default="compile" basedir=".">
        <target name="init">
            <property name="conf.dir" value="conf" />
            <property name="src.dir" value="src" />
            <property name="resource.dir" value="resource" />
            <property name="build.dir" value="build" />     
            <property name="release.dir" value="release" />
            <property name="etc.dir" value="etc" />
            <property name="lib.dir" value="lib" />
        </target>



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

        <target name="compile" depends="init">
            <mkdir dir="${build.dir}" />
            <javac srcdir="${src.dir}" destdir="${build.dir}" includeAntRuntime="false" debug="true" optimize="false" />        
        </target>

        <target name="release" depends="compile">       
            <mkdir dir="${release.dir}" />

            <jar destfile="${release.dir}/chat_service.jar" basedir="${build.dir}"  includeantruntime="false" />        
        </target>

    </project>

当我在Windows中使用ant运行它时,命令提示符显示:

Buildfile: build.xml

init: 

compile: BUILD SUCCESSFUL

但它没有创建一个jar文件。 它所做的就是复制确切的项目并将其编译成类文件。

有谁知道如何创建正确的文件? 它是一个聊天服务器,我需要它来运行我的客户端。

2 个答案:

答案 0 :(得分:4)

构建文件的默认目标是compile

<project name="chat" default="compile" basedir=".">

因此,如果在未指定目标的情况下调用ant,则将执行compile目标。要执行release目标,请使用

ant release

答案 1 :(得分:-1)

您应该添加另一个目标部分来生成jar文件。 例如:

<target name="jar" depends="compile">
    <mkdir dir="${jar.dir}" />
    <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
        <manifest>
            <attribute name="Main-Class" value="${main-class}" />
            <attribute name="Class-Path" value="config/ properties/ ${manifest.classpath}" />
        </manifest>
    </jar>

</target>

最后,您当然应该为自己的文件和属性配置该块。