Каковы общие практики для разработки Java на Linux? - PullRequest
23 голосов
/ 16 марта 2011

Я пытаюсь перейти с Windows на Linux в качестве платформы разработки на Java, и хотя переход в целом был довольно безболезненным, есть несколько моментов неопределенности, на которые я хотел бы получить отзывы.Я использую openSUSE 11.4, но я открыт для того, чтобы услышать, что работает на других дистрибутивах.

  1. Где вы устанавливаете свой JDK? Этот, на удивление, не такой разрезанный.и сухой, как это делают большинство людей.OpenJDk 6 доступен в репозиториях openSUSE, и его было очень легко установить.Однако в настоящее время это обновление 21, и сейчас выпуск Oracle находится на обновлении 24. Я привык к небольшому предупреждению в Windows, уведомляющем меня о том, что моя Java нуждается в обновлении, но это не кажется нормой в Linux.Отказываются ли разработчики Java от JDK в своем диспетчере пакетов и устанавливают двоичный файл напрямую?Или есть другой способ?
  2. Где вы устанавливаете Eclipse? Похоже, в Интернете существует общее соглашение о том, что Eclipse лучше всего установить, просто загрузив двоичный файл и распаковав его куда-нибудь, но гдеобычное место, где я хотел бы извлечь программу, как Eclipse или Ant?Я видел голоса за / usr / local и / opt онлайн, но однозначного ответа нет.
  3. Куда вы положили свой Jetty / Tomcat? Похоже на вопрос о затмении, где большинствоРазработчики Linux Java помещают свой контейнер Jetty / Tomcat / other.
  4. В чем различия между настройкой разработки и производством По крайней мере, мне кажется, что я этого не хочузапустить мой контейнер сервлетов от имени root, это имеет смысл для меня.Но какие еще практики я должен остерегаться?Есть ли что-нибудь еще, что могло бы сделать мою среду разработки проще, но, возможно, менее безопасной?

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

Спасибо за ваше время.

Ответы [ 6 ]

7 голосов
/ 17 марта 2011

Q> Откуда вы устанавливаете свой JDK?
A> Я никогда не беспокоюсь о других JDK, поступающих из-за пределов Sun / Oracle, главным образом потому, что наш продукт сертифицирован только дляработать с Sun / Oracle JRE.На моем рабочем столе я запускаю Kubuntu, но я никогда не использую apt-get для этого, но всегда загружаю их вручную.Причины:

  • сопровождающие дистрибутивы редко спешат обновлять пакеты, поскольку их главная задача - заставить работать зависимые приложения (такие как OpenOffice).Если JDK изменится с 1.6.0_20 на 1.6.0_21, им просто все равно.Я мог бы это сделать, потому что более новый патч может иметь важное исправление, или я просто хочу попробовать, если мое приложение все еще проходит все модульные тесты.
  • может быть кошмаром сохранять старые версии JDK.Мы по-прежнему поддерживаем более старые версии нашего продукта, и если я обновлюсь до более новой версии Kubuntu, у меня нет гарантии, что какой-то древний JDK все еще будет доступен в виде пакета.
  • Я не уверен, что некоторые дистрибутивы даже поддерживают несколькосуществование JDK на одном компьютере.

Я предпочитаю сохранять все JDK / JRE в /opt и создавать символическую ссылку на самый новый или тот, который мне нужен больше всего.Я просто не понимаю, почему установка JDK вручную является проблемой.

Я также установил для PATH самый новый JDK / JRE.

То же самое (и аналогичные аргументы) применимы к Ant и Maven.

Q> Где вы устанавливаете Eclipse?
A> Я использую IntelliJ, но то же самое применимо.Я храню IDE в своей домашней папке.Это позволяет мне иметь разные его версии, обновлять их без необходимости sudo и т. Д. Я мог бы также установить его в /opt, но я полагаю, у меня появилась эта привычка, когда я каждую неделю загружал и тестировал новейший EAP IntelliJ IDEA, поэтомуЯ могу быстро удалить старые версии и не загрязнять /opt.Наконец, другие программы могут потребовать Ant / Maven / JDK, но только я использую IntelliJ, поэтому другой подход.

Q> Где вы положили свой Jetty / Tomcat?
A> У меня есть отдельная папка tomcats в /home, где у меня ~ 10 разных экземпляров Tomcat.Каждый из Tomcats используется для отдельной версии моего приложения (мы связываем Tomcat с нашим приложением).Это необходимо, потому что одно развертывание нашего приложения может иметь другие настройки Tomcat (или даже версию), чем другое.

Q> В чем различия между настройкой разработки и производством
A> Это очень сильно зависит от вашего приложения.Например, нам нужно, чтобы некоторые разделы имели меньшую задержку доступа, но имели меньше места (например, гигабайты для индексов Lucene) по сравнению с другими, которые могут иметь более высокие задержки, но требуют больше места (например, терабайты для хранилищ контента).Однако мы разрабатываем наше приложение так, чтобы все эти различные аспекты могли находиться в разных разделах, которые можно настраивать.Некоторые разделы должны иметь особые ограничения (например, загрузка файлов), чтобы это не переполняло другие разделы.На этот вопрос не существует простого однозначного ответа, но, очевидно, большинство этих проблем не имеют большого значения для среды разработки.

3 голосов
/ 17 марта 2011

Откуда вы устанавливаете свой JDK?

Я сам использую Arch Linux, и у нас есть оракул jdk / jre в самом хранилище.Следовательно, используйте ваш дистрибутивный репозиторий, если у него есть oracle jdk / jre, иначе получите его от самого oracle.

Где вы устанавливаете Eclipse?

Опять то же самоеОтвет, как указано выше, относится и к этому.Однако, если есть какая-либо проблема с предоставленной версией дистрибутива, я всегда помещаю свои пользовательские установки в / opt / - / opt / java, / opt / eclipse, / opt / netbeans - и т. Д. Я не устанавливаю вещи в мою домашнюю папку (кроме случаев, когда у меня нет разрешения где-либо еще (редко), поскольку это будет означать, что другим пользователям потребуется доступ к моей домашней папке для запуска материала.Я не хочу, чтобы производственные (или, если на то пошло, разработки) вещи имели прямой доступ к моему дому.

Где вы положили свой Jetty / Tomcat?

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

В чем различия между настройкой разработки и производством?

Если возможно, я всегда настраиваю разные машины для производства и разработки.Разные компьютеры, но точно одинаковые настройки.Единственные системы, которые могут передавать код в производственную систему, - это те, что находятся в группе разработки.В тех случаях, когда такое разделение невозможно, я предпочитаю устанавливать разные серверы, поэтому, пока я настраиваю конфигурацию разработки, мои главные серверы не выходят из строя или что-то в этом роде.Кроме того, настройка разработки обычно включает в себя сценарий clean_up, который делает его готовым к работе (удаление ненужных привилегий для учетных записей БД, очистка и т. Д.)

Имейте все, что вы хотите, просто убедитесь, что у вас есть другие настройки базы данных дляразработка и производство.

2 голосов
/ 17 марта 2011

Версия Sun для Java для openSUSE находится на диске nonOSS (, перейдите сюда и прокрутите вниз для ISO ), который является дополнительным образом диска, а не частью основного установочного диска ISO (или выможет извлекать RPM из здесь ).

Что касается Eclipse, то, если я устанавливаю на системном уровне, я склонен добавить его в / opt.Возможно, вы захотите прочитать эту статью о том, как лучше всего работать с плагинами.

(Не позволяйте им отвлечь вас от openSUSE, это лучший дистрибутив для KDE IMO.)

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

1) У нас было несколько проблем с OpenJDK (ошибки и т. Д.), Поэтому мы всегда используем sun jdk.

2/3) Хорошим правилом для жизни в Linux всегда является установкапользовательское программное обеспечение в вашей домашней папке.Время от времени нужно переустанавливать Linux, но все, что находится в вашей домашней папке, находится в отдельном дисковом разделе, поэтому оно живет.Я всегда устанавливаю / разархивирую пользовательское программное обеспечение, такое как eclipse в / home / myuser / opt, поэтому мое затмение живет в ~ / opt / eclipse.Я также символически связываю бинарный файл eclipse с моей папкой / home / myuser / bin для быстрого доступа.Когда я обновляю или меняю любое программное обеспечение, я просто перепишу символическую ссылку.

4) Среды производства и разработки должны быть как можно ближе к идентичным.Это устраняет множество ошибок, вызванных различными конфигурациями и т. Д.

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

Работа с linux намного проще, чем в среде Windows, которую вы тоже используете.На вашем месте я бы переключил дистрибутивы либо на RedHat, либо на Ubuntu, я использую SUSE и никогда не оглядывался назад с тех пор, как переключился.

Вы можете разместить свои двоичные файлы JDK / Eclipse / Tomcat в нескольких разных местах.Если вы единственный, кто собирается их использовать, я предлагаю вам поместить их в свой домашний каталог.Для ваших вещей в Eclipse / Tomcat вы можете добавить их в локальную корзину, а затем добавить эту локальную корзину в PATH в вашем .bashrc.Вы также можете установить местоположение вашего JDK для переменной env JAVA_HOME в вашем bash.Если вам нужна более конкретная помощь по настройке, дайте мне знать.

0 голосов
/ 16 марта 2011

Я создаю каталог / usr / local / java и распаковываю туда JDK, Eclipse, Maven, Ant, Groovy и Grails, затем создаю символические ссылки на /usr/local/bin.

...