简体   繁体   English

如何使用Ant创建可执行jar

[英]How to create an executable jar with Ant

In Eclipse I'm using ant for create .jar files 在Eclipse中,我使用ant创建.jar文件

I need to debug a jar in another project. 我需要在另一个项目中调试jar。 How i can generate a jar which also contains source code for debug? 我如何生成还包含调试源代码的jar?

EDIT: i create the jar using: 编辑:我使用以下方式创建罐子:

<jar destfile="${my.lib}/${myProject}.jar" basedir="${eclipse.workspace}/${myProject}/bin">

to include source files in the jar , this would suffice: 源文件包含在jar中 ,就足够了:

<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: 但是,您已经在问题中create an executable jar ,因此应该可以:

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

Creating a runnable jar file using Apache Ant task zipgroupfileset 使用Apache Ant任务zipgroupfileset 创建可运行的jar文件

<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 从Eclipse创建可运行的Runnable JAR File

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM