2014-02-17 42 views
0

我有建立類到bin目錄的項目。我有額外的ANT構建器,它將bin目錄的內容放到proj_hug.jar。但bin文件夾包含我不會包含到JAR中的*.properties文件。如何解決這個問題呢?導出到JAR,不包括一些額外的文件

Ant腳本:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<project default="create_run_jar" name="Create Runnable Jar for Project proj with libraries in sub-folder"> 
    <!--this file was created by Eclipse Runnable JAR Export Wizard--> 
    <!--ANT 1.7 is required          --> 
    <target name="create_run_jar"> 
     <jar destfile="C:/Projects/proj/JAR/proj_hug.jar"> 
      <manifest> 
       <attribute name="Main-Class" value="hug.projhugHandler"/> 
       <attribute name="Class-Path" value=". proj_hug_lib/RXTXcomm.jar proj_hug_lib/log4j.jar proj_hug_lib/hug.jar proj_hug_lib/commons-codec-1.5.jar"/> 
      </manifest> 
      <fileset dir="C:/Projects/proj/bin"> 
      </fileset> 
     </jar> 
     <delete dir="C:/Projects/proj/JAR/proj_hug_lib"/> 
     <mkdir dir="C:/Projects/proj/JAR/proj_hug_lib"/> 
     <copy file="C:/Projects/proj/RXTXcomm.jar" todir="C:/Projects/proj/JAR/proj_hug_lib"/> 
     <copy file="C:/Projects/proj/log4j.jar" todir="C:/Projects/proj/JAR/proj_hug_lib"/> 
     <copy file="C:/Projects/proj/hug.jar" todir="C:/Projects/proj/JAR/proj_hug_lib"/> 
     <copy file="C:/Projects/proj/commons-codec-1.5.jar" todir="C:/Projects/proj/JAR/proj_hug_lib"/> 

    </target> 
</project> 

<fileset>增加了,如:

<fileset dir="C:/Projects/proj/bin"> 
     <include name="*.class"/> 
     <exclude name="*.properties*"/> 
</fileset> 

但是,這使事情變得更糟 - 無類文件和無屬性文件都在我的JAR。

UPD:

如果我有這樣的:

<fileset dir="C:/Projects/proj/bin"> 
     <include name="**/*.class"/> 
     <exclude name="**/*.properties*"/> 
</fileset> 

我有jar文件只META-INF。

如果我不喜歡:

<fileset dir="C:/Projects/proj/bin"> 
      <include name="**/*.class"/> 
    </fileset> 

我有jar文件只META-INF。

如果我不喜歡:

<fileset dir="C:/Projects/proj/bin"> 
     <exclude name="**/*.properties*"/> 
</fileset> 

我有空封裝directoryes和jar文件的META-INF。

回答

1

確保您有javac任務將代碼編譯到<project home>/bin目錄中。

更改fileset到:

<fileset dir="C:/Projects/proj/bin"> 
    <include name="**/*.class"/> 
    <exclude name="**/*.properties*"/> 
</fileset> 
+0

不幸的是這個簡化版,解決問題。我已更新說明,並附有測試結果 – vico

+0

javac任務已丟失。請添加javac任務以將代碼編譯到C:/ Projects/proj/bin目錄中。 – RaviH

+0

你應該把一些任務分解成單獨的目標,比如clean,compile和jar。它使這個過程更容易構建和重用潛在的目標。 – mikemil