Reputation: 353
In Eclipse I'm using ant for create .jar files
I need to debug a jar in another project. How i can generate a jar which also contains source code for debug?
EDIT: i create the jar using:
<jar destfile="${my.lib}/${myProject}.jar" basedir="${eclipse.workspace}/${myProject}/bin">
Upvotes: 1
Views: 6626
Reputation: 9568
Creating a runnable jar file using Apache Ant
task zipgroupfileset
<manifest file = "MANIFEST.MF"> <!-- Manifest-Version: 1.0 -->
<attribute name = "Main-Class" value = "${RunnableMain-Class}"/>
<attribute name = "Class-Path" value = "."/>
</manifest>
<jar destfile="${exportDestination}/${jarFileName}.jar" basedir="${class-files}"
manifest="MANIFEST.MF">
<fileset dir="${class-files}" includes="**/*.class" />
<zipgroupfileset dir="${buildPath-Libraries}" includes="**/*.jar" />
</jar>
Full length example:
<property name="exportDestination" value="${basedir}"/>
<property name="ProjectName" value="${basedir}/MyRunnableJAR"/>
<property name="jarFileName" value="myRunnableJAR"/>
<property name="RunnableMain-Class" value="org.openqa.grid.selenium.GridLauncher"/>
<property name="class-files" value="${ProjectName}/bin" />
<property name="buildPath-Libraries" value="${ProjectName}/lib"/>
<property name="source-dir" value="${ProjectName}/src" />
<property name="Ant-Version" value="Apache Ant 1.8.2"/>
<property name="Built-By" value="Yashwanth.Merugu"/>
<path id="buildLibraries"> <!-- http://ant.apache.org/manual/using.html#path -->
<fileset dir="${buildPath-Libraries}">
<include name="*.jar"/>
</fileset>
</path>
<!-- compile -->
<target name="compile" >
<mkdir dir="${class-files}"/>
<javac srcdir="${source-dir}" destdir="${class-files}" includeantruntime="false" encoding="iso-8859-1">
<classpath refid="buildLibraries"/>
</javac>
</target>
<!-- jar -->
<target name="jar" depends="compile">
<manifest file = "MANIFEST.MF"> <!-- Manifest-Version: 1.0 -->
<attribute name = "Built-By" value = "${Built-By}"/>
<attribute name = "Ant-Version" value = "${Ant-Version}"/>
<attribute name = "Main-Class" value = "${RunnableMain-Class}"/>
<attribute name = "Class-Path" value = "."/>
</manifest>
<jar destfile="${exportDestination}/${jarFileName}.jar" basedir="${class-files}" manifest="MANIFEST.MF">
<fileset dir="${class-files}" includes="**/*.class" />
<zipgroupfileset dir="${buildPath-Libraries}" includes="**/*.jar" />
</jar>
</target>
From Eclipse to create Runnable JAR File
Upvotes: 1
Reputation: 1493
to include source files in the jar, this would suffice:
<jar destfile="${my.lib}/${myProject}.jar" basedir="${eclipse.workspace}/${myProject}" includes="bin/**,src/**"/>
however, you've mwntioned create an executable jar
in your question, for that, this should work:
<target name="abc">
...
<manifest file = "MANIFEST.MF">
<attribute name = "Main-Class" value = "yourClassName"/>
<attribute name = "Class-Path" value = "."/>
</manifest>
<jar destfile="${my.lib}/${myProject}.jar" basedir="${eclipse.workspace}/${myProject}" includes="bin/**,src/**" manifest="MANIFEST.MF"/>
</target>
Upvotes: 2