Где находится sun-appserv-ant.jar для Glassfish v3 - PullRequest
3 голосов
/ 13 января 2010

Где находится sun-appserv-ant.jar в Glassfish v3

Я создал небольшой пример EJB-проекта и хочу использовать ant для развертывания приложения в Glassfish v3.

Я потратил много времени на Google, пытаясь добиться этого, и все примеры муравьев, похоже, ссылаются на файл jar под названием "sun-appserv-ant.jar", который должен находиться в каталоге модулей сервера приложений. установить, однако, я не могу найти его нигде, и при этом я не могу найти причину, или, если есть даже альтернатива на основе муравья.

Спасибо

Ответы [ 3 ]

5 голосов
/ 15 января 2010

Файл sun-appserv-ant.xml не был перенесен с v3.

Вы не совсем застряли.

Вы можете прочитать о задаче Ant exec , которую можно использовать для запуска команд asadmin .

Если вы очень любите приключения, вы можете исследовать инфраструктуру bp-project, которая используется в примерах проектов, поставляемых с Java EE 6 SDK .

Вы можете взглянуть на инфраструктуру bp-проекта, посмотрев код в хранилище образцов стеклянной рыбы .

3 голосов
/ 13 января 2010

Вы должны добавить модуль glassfish-ant-tasks через инструмент обновления GlassFish

1 голос
/ 03 марта 2011

После долгих мучений я нашел пример использования инструментов муравья V3.x здесь

Недостатком для не говорящих по-французски является то, что он на французском языке. Плюс в том, что части Java все еще в Java.

Насколько я могу судить, задачи Ant теперь значительно отличаются от задокументированных Sun (Oracle):

  1. Вы должны использовать инструмент обновления сервера Glassfish, чтобы получить модуль glassfish-ant-tasks.

  2. Это приведет к загрузке файла * glassfish_dir * / lib / ant / ant-tasks.jar. Это должно быть включено в ваш classpath

  3. Определите цель as-ant-init в вашем build.xml

    <target name="as-ant-init">
        <taskdef name="sun-appserv-deploy"
            classname="org.glassfish.ant.tasks.DeployTask"
            classpath="${build-lib}/ant-tasks.jar" />
        <taskdef name="sun-appserv-undeploy"
            classname="org.glassfish.ant.tasks.UndeployTask"
            classpath="${build-lib}/ant-tasks.jar" />
        <taskdef name="sun-appserv-component"
            classname="org.glassfish.ant.tasks.ComponentTask"
            classpath="${build-lib}/ant-tasks.jar" />
        <taskdef name="sun-appserv-admin"
            classname="org.glassfish.ant.tasks.AdminTask"
            classpath="${build-lib}/ant-tasks.jar" />
        <taskdef name="sun-appserv-redeploy"
            classname="org.glassfish.ant.tasks.RedeployTask"
            classpath="${build-lib}/ant-tasks.jar" />
        <taskdef name="sun-appserv-start-server"
            classname="org.glassfish.ant.tasks.StartServerTask"
            classpath="${build-lib}/ant-tasks.jar" />
        <taskdef name="sun-appserv-stop-server"
            classname="org.glassfish.ant.tasks.StopServerTask"
            classpath="${build-lib}/ant-tasks.jar" />
    </target>
    
  4. Напишите цель развертывания. Правила похожи на то, что указано в документации, КРОМЕ

    A. Удалите ссылки на элемент <server>, который использовался в более старых версиях.

    B. Все атрибуты, которые были бы присоединены к <server> в более старой версии API, теперь присоединяются непосредственно к содержащему элементу, например <sun-appserv-deploy>, например:

    <target name="deploy">
        <sun-appserv-deploy
            user="${glassfish.admin-user}"
            passwordfile="${glassfish.passwordfile}}"
            host="${glassfish.host}"
            port="${glassfish.admin-port}"
            installDir="${asinstalldir}"
            upload="true" >
    
            <component
                file="${dist.warfile}"
                name="My application"
                contextroot="${glassfish.context-root}" />
        </sun-appserv-deploy>
    </target>
    
...