Подтвердить что ты не робот

Каковы общие практики разработки Java в Linux?

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

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

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

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

4b9b3361

Ответ 1

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, но я предполагаю, что получил эту привычку, когда я загружал и тестировал новейшую IntelliJ IDEA EAP каждую неделю, поэтому Я могу быстро удалить старые версии и не загрязнять /opt. Наконец, другим программам может потребоваться Ant/Maven/JDK, но это только я, кто использует IntelliJ, следовательно, использует другой подход.

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

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

Ответ 2

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

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

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

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

Где вы разместите свой Jetty/Tomcat?

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

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

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

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

Ответ 3

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

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

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

Ответ 4

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

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

Ответ 5

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

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

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

Ответ 6

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