Пример сценария Ant - PullRequest
       18

Пример сценария Ant

1 голос
/ 21 мая 2009

Я хотел бы сделать очень простой муравей сценарий, который выполняет одну вещь, которая заключается в создании jar-файла. Но когда я пытаюсь использовать очень простой пример, он терпит неудачу из-за зависимостей от фляг, от которых зависит мой источник. Итак, как вы указываете jar, что есть jar, которые должны быть в пути к классу при построении цели Ant.

<project name="project" default="default">
<property name="src.dir"     value="src"/>
<property name="build.dir"   value="build"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="jar.dir"     value="${build.dir}/jar"/>
<property name="lib.dir"     value="//tomcat/common/lib"/>
<description> description </description>

<!-- ================================= 
      target: default              
     ================================= -->
<target name="default" depends="compile" description="description">
    <jar destfile="/path/to/dir/Library.jar">

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

</project>

Ответы [ 4 ]

3 голосов
/ 21 мая 2009

Ваш вопрос не совсем понятен - я подозреваю, что вы хотите скомпилировать исходный код (с помощью задачи javac) и , а затем создать файл jar из результатов. Если это не так, я не вижу, откуда ваши исходные зависимости. Если это является случаем, тогда задача jar не имеет значения.

В задаче javac используйте атрибут classpath для указания других зависимостей jar.

3 голосов
/ 21 мая 2009

Вот скрипт ANT, сгенерированный с помощью Eclipse Runnable JAR Export Wizard. Это проект, который обновляет статистику в электронной таблице Google для небольшой лиги фэнтези-бейсбола с некоторыми друзьями. Это получает статистику, очищая страницы игрока ESPN.com.

Атрибут Class-Path внутри элемента manifest используется для установки пути к классу, используемого в банке. Это по умолчанию "." но мне пришлось явно добавить свой путь src, чтобы log4j подхватил log4j.properties.

zipfileset элементы - это внешние файлы, используемые моим источником, которые я хотел включить в свой файл. Я подозреваю, что это может быть то, что вы ищете.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="create_run_jar" name="Create Runnable Jar for Project cob_fantasy_baseball">
    <!--this file was created by Eclipse Runnable JAR Export Wizard-->
    <!--ANT 1.7 is required                                        -->
    <target name="create_run_jar">
        <jar destfile="C:/workspace/cob_fantasy_baseball/cob_fantasy_baseball.jar" filesetmanifest="mergewithoutmain">
            <manifest>
                <attribute name="Built-By" value="${user.name}"/>
                <attribute name="Main-Class" value="com.me.cob_fantasy_baseball.UpdateCobStats"/>
                <attribute name="Class-Path" value=".;src/com/me/cob_fantasy_baseball"/>
            </manifest>
            <fileset dir="C:/workspace/cob_fantasy_baseball/classes"/>
            <zipfileset excludes="META-INF/*.SF" src="C:/workspace/gdata/java/lib/gdata-core-1.0.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="C:/workspace/gdata/java/lib/gdata-spreadsheet-2.0.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="C:/workspace/jericho-html-2.6/lib/jericho-html-2.6.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="C:/workspace/apache-log4j-1.2.15/log4j-1.2.15.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="C:/workspace/jaf-1.1.1/activation.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="C:/workspace/javamail-1.4.2/mail.jar"/>
            <zipfileset excludes="META-INF/*.SF" src="C:/workspace/javamail-1.4.2/lib/smtp.jar"/>
            <fileset dir="C:/workspace/cob_fantasy_baseball/src/com/me/cob_fantasy_baseball"/>
        </jar>
    </target>
</project>

Также вот ссылка на документацию по Ant для задачи jar: http://ant.apache.org/manual/Tasks/jar.html

1 голос
/ 21 мая 2009

На основании вашего примера вы можете просто поместить libs в javac:

<javac srcdir="${src.dir}" destdir="${classes.dir}">
    <classpath>
        <pathelement location="${lib.dir}/lib1.jar"/>
        <pathelement location="${lib.dir}/lib2.jar"/>
    </classpath>
</javac>
0 голосов
/ 21 мая 2009

Вот файл ant, который мы используем для создания проекта с открытым исходным кодом Timeline. Это довольно просто. Он не создает jar, но использует библиотеки для минимизации файлов JS.

http://simile -widgets.googlecode.com / СВН / график / багажник / build.xml

Larry

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...