Развертывание Java-приложения (командной строки) с использованием Netbeans / ant - PullRequest
1 голос
/ 13 марта 2009

Мне наконец-то удалось создать проект Netbeans из старого автономного (не веб-) Java-приложения, которое состояло только из отдельных источников .java. Теперь у меня есть два основных вопроса, касающихся взаимодействия Netbeans Subversion и развертывания приложений:

  1. Вы регистрируете все файлы проекта Netbeans в хранилище, обычно?

  2. Если я собираю проект с использованием Netbeans (или ant), я получаю файл .jar и некоторые дополнительные библиотеки jar. Для правильной работы приложения на сервере необходимы дополнительные файлы конфигурации и каталоги (например, log /). Само приложение является приложением J2SE (без фреймворков), которое запускается из командной строки на платформе Linux. Как бы вы развернули и установили такое приложение? Также было бы хорошо, если бы я мог видеть, какая версия приложения установлена ​​в данный момент (возможно, добавив номер версии в путь к установленному приложению).

Спасибо за любые советы.

Ответы [ 4 ]

2 голосов
/ 13 марта 2009
  1. Нет, обычно нет. Я не проверяю что-либо специфичное для NetBeans (или Eclipse, IntteliJ и т. Д.); попробуйте собрать его из командной строки с помощью вашего ant-скрипта и создать именно то, что вы хотите. Build.xml - это то, что можно использовать для других IDE или использовать с Anthill или CruiseControl для автоматической сборки / непрерывной интеграции, так что его необходимо проверить. Проверьте, что необходимо для создания / создания ваших артефактов.

  2. Вы не указываете, какой тип сервера или какой тип приложения. Некоторые приложения развертываются через JNLP / WebStart для загрузки несколькими пользователями и имеют правила, отличные от установленных отдельно для одного пользователя на сервере, для запуска без графического интерфейса пользователя в качестве приложения для мониторинга. Я не смогу помочь вам в этом, если вы не предоставите более подробную информацию о вашем приложении, серверной среде и т. Д. Что касается файлов конфигурации, как вы получаете к ним доступ? Они статичны и никогда не изменятся (что-то, что вы можете загрузить с помощью ResourceBundle)? ? Вы можете добавить их в файл jar, чтобы найти их в ResourceBundle, но все зависит от того, что вы там делаете. Если они должны быть вне файла jar для модификации без перекомпиляции, скопируйте их с помощью установочного скрипта. Что касается каталогов, они должны уже существовать? Или приложение проверяет их наличие и создает их при необходимости? Если приложение может создать их, если они отсутствуют, вам не нужно их создавать. Если они должны быть там, вы можете сделать это частью сценария установки, чтобы создать эти папки перед установкой jar-файлов. Номер версии может быть таким простым, как добавление поля about в приложении и поиск строки версии в файле config / properties. Его необходимо поддерживать, но, по крайней мере, вы сможете получить доступ к тому, что сообщит вам о том, что вы развернули сборку 9876.5.4.321 (или какую бы схему нумерации версий вы не использовали).

0 голосов
/ 20 марта 2010

Чтобы ответить на вопрос № 2 - кто ваш потребитель для этого приложения? Если это внутреннее приложение, и только вы (или другие разработчики) собираетесь его развертывать, то у вас все в порядке. Добавьте файл README с описанием необходимых каталогов.

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

Номер версии зависит от вас - назвать JAR-файлы - неплохая идея. У меня также есть привычка распечатывать номер версии при запуске, что может пригодиться.

0 голосов
/ 13 марта 2009

Мы не проверяем каталоги / build или / dist.

Мы склонны использовать эту структуру для наших проектов Netbeans в SVN:

 /project1/
          /trunk
          /tags/
               /1.0
               /1.1
          /binaries/
                   /1.0
                   /1.1

Когда требуется изменение, мы извлекаем проект netbeans из trunk / и вносим в него изменения и возвращаем его обратно. После того, как требуется выпуск проекта, мы делаем SVN-копию файлов проекта netbeans в следующий тег. версия. Мы также берем копию развертываемого файла (JAR или WAR) и помещаем его в каталог версий в двоичные файлы вместе с любыми зависимостями и файлами конфигурации.

Благодаря этому у нас есть чистая версия с возможностью развертывания, которая отделена от источника. Развертываемы ли версии в названии - project1-1.0.jar, project1-1.1jar и т. Д.

Я не согласен с talonx по поводу сохранения вашего исходного кода не специфичным для IDE - не сохраняя IDE-файлы в SVN вместе с вашим исходным кодом, вы добавляете дополнительные сложности в цикл проверки, изменения, регистрации, развертывания. Если вы храните файлы проекта IDE в SVN, вы можете просто проверить проект, запустить IDE и нажать кнопку «Сборка». Вам не нужно выполнять шаги по настройке нового проекта в IDE, включая файлы, которые вы SVNed, настройку зависимостей и т. Д. Это экономит время и означает, что все разработчики работают с одинаковой настройкой, что уменьшает ошибки и несоответствия , Последнее, что вам нужно, - это чтобы разработчик проверил проект, чтобы исправить маленькую ошибку, и потратить время на поиск зависимостей и настройку.

0 голосов
/ 13 марта 2009

В идеале не следует связывать исходные тексты приложений и конфигурацию с определенной IDE.

Questionwise

  • Я предлагаю вам не делать этого. Сохранить структуру хранилища независимо от IDE
  • Возможно, вам придется изменить приложение, чтобы его структура была очень общей и редактировалась в любой среде IDE.

    Это веб-приложение? Автономное Java-приложение? Если вы уточните это, вам будет проще ответить на ваш запрос.

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