2016-05-19 17 views
1

私はTravis-CI Antビルドにjson jarを追加しようとしていますが、私もstackoverflowでこの問題は重複しているかもしれませんが、私はそれを扱うことはできません。 travisが私のコードをコンパイルするときにJSONを使うことはできません。私はxmlのビルドに何か間違っていると思います。私を助けてください、私はAntで新しいです。Ant buildにJarを追加する

+0

私の解決策とは? – Rao

答えて

0

は、ビルドが失敗したときに、正確なエラーを表示することができます

<project name="Hello" basedir="." default="main"> 
<property name="dir.src"  value="src"/> 
<property name="dir.build" value="build"/> 
<property name="dir.classes" value="${dir.build}/classes"/> 
<property name="dir.jar"  value="${dir.build}/jar"/> 
<property name="dir.lib"  value="."/> 
<property name="main-class" value="TestConsole"/> 
<target name="clean"> 
    <delete dir="${dir.build}"/> 
</target> 

//Edited part 

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

<target name="jar" depends="compile"> 
<mkdir dir="${dir.jar}"/> 
<jar destfile="${dir.jar}/${ant.project.name}.jar" basedir="${dir.classes}"> 
    <manifest> 
     <attribute name="Main-Class" value="${main-class}"/> 
    </manifest> 
    <zipgroupfileset dir="${dir.lib}" includes="**/*.jar"/> 
</jar> 

//Edited part ends here 

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

<target name="clean-build" depends="clean,jar"/> 
<target name="main" depends="clean,run"/> 
</project> 
1

これは、Javaコンパイラがコンパイルに必要なクラスを見つけることができないためです。クラスパスを使用して、すべての必要なjarファイルをjavacにする必要があります。

だからあなたのビルドXMLにあなたは、このようにクラスパスを指定する必要があります。

<path id="project.class.path"> 
    <pathelement location="bin/"/> <!-- to put a folder in class path --> 
    <pathelement location="lib/helper.jar"/> <!-- to put a jar in class path --> 
    <pathelement path="${java.class.path}/"/> 
    </path> 

そして、このようなjavacを実行しながら、このクラスパスを使用します。

<javac srcdir="${dir.src}" destdir="${dir.classes}"> 
    <classpath refid="project.class.path"/> 
</javac> 

同様に、あなたがそれをしなければなりませんクラスを使用しているときjava

詳細については、writing a simple build fileを参照してください。ここで

+1

あなたの助けに感謝btw私はパスIDを使用せずに解決策を見つける。 – phantom

+1

同じ状況で他の人を助けることができるように答えとして追加してください。乾杯 – Sanjeev

+0

しかし、あなたの解決策も正しいです:) – phantom

関連する問題