2013-02-08 105 views
1

搭上一个老脚本我的手,从2000年 这一切都在Java和存在是编译所有的生成文件:Ant构建不会使jar文件

<?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中的命令提示符说:

Buildfile: build.xml 

init: 

compile: BUILD SUCCESSFUL 

但它不创建一个jar文件。 它所做的只是复制确切的项目并将其编译到类文件中。

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

回答

4

构建文件的默认目标是compile

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

所以,如果你调用Ant没有指定目标,该目标compile将被执行。要执行release目标,使用

ant release 
-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> 

末,你当然应该配置块自己的文件和属性。

+0

没有必要添加额外的目标,因为已经有一个jar任务。它只需要被执行/使用(蚂蚁释放) – stan0 2013-08-22 12:57:32