Как лучше всего хранить ваши JAR и другие библиотеки в Mac OS X - PullRequest
8 голосов
/ 17 марта 2011

Мой вопрос прост: как лучше всего хранить все мои фляги, gwt и другие фреймворки на Mac OS X?

Я думал, что это /Library/Java/Extensions.Но я не уверен, что это правильно.

Ответы [ 8 ]

6 голосов
/ 12 апреля 2011

Существует два способа установки java:

  • Используйте менеджер пакетов, например Homebrew или MacPorts ,
  • Или делай все по-своему.

В качестве примера, вот как MacPorts устанавливает Tomcat:

/Library/LaunchDaemons/blah.blah.start.Tomcat.daemon
/opt/local/etc/LaunchDaemons/blah.blah.plist
/opt/local/bin/start-tomcat-script
/opt/local/share/docs/...tomcat docs
/opt/local/share/java/...tomcat classes

Вы не хотите имитировать это вручную, потому что это безумное количество работы и никакой пользы. Вы либо sudo port install tomcat6, либо распаковываете весь Tomcat в /Users/YOURUSER/java/apache/tomcat/6/ и добавляете bin к пути. То же самое для SDK.

Если вы хотите установить только файлы jar (не SDK), используйте Maven как можно чаще. Вы сказали что-то о проблемах при добавлении в ваш локальный репозиторий. Это не правильно, вы можете иметь несколько репозиториев и включать / отключать их для каждого проекта. У меня есть один для материала, загружаемого Maven, и другой, где я добавляю вещи вручную. Если вы являетесь единственным пользователем вашей машины, поместите репозиторий где-нибудь в вашем доме, в противном случае используйте /opt/local/var/ или где угодно.

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

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

Ваш .m2 репозиторий? Вы не используете Maven для разрешения ваших зависимостей?

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

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

ЗначительноЛучше всего создать исполняемые / исполняемые файлы jar, в которых атрибут Class-Path указывает на нужные файлы jar.

1 голос
/ 18 апреля 2011

Игнорируя необходимость в Maven и Tomcat, вы должны поместить их в любую папку, которая включена в переменную окружения $JAVA_HOME.Я бы порекомендовал вам создать каталог, скажем

~/java

и установить

JAVA_HOME=$JAVA_HOME:$HOME/java

Информация о переменных среды в OS X .Следуйте этим инструкциям, но оставьте строку JAVA_HOME, которая есть в посте.Добавьте строку, которую я дал вам, где-то ниже другого определения.Примерно так:

JAVA_HOME= < blah, blah >
JAVA_HOME=$JAVA_HOME:$HOME/java

Также обратите внимание, что если вы используете системный файл, такой как /etc/launchd.conf, вам не следует использовать $HOME, так как он может быть еще не установлен.Вместо этого используйте полный путь к своей папке или используйте файл, запускаемый при входе пользователя в систему.

Я согласен на 100% с людьми, которые сказали вам не хранить ваши собственные файлы в системных папках.

1 голос
/ 14 апреля 2011

Не устанавливайте jar в /Library, если вы действительно не знаете, что делаете (например, возможно, вам нужно установить некоторые файлы политики шифрования). Вам будет намного лучше, если вы будете хранить свои банки в другом месте.

Поскольку вы используете Maven, вы можете указать другой локальный репозиторий, создав файл ~ / .m2 / settings.xml:

<settings>
  ...
  <localRepository>/path/to/local/repo/</localRepository>
  ...
</settings>

Затем используйте Maven, чтобы установить банки в локальном репо и все готово.

Лично я храню свои библиотеки в папке, такой как ~/dev/java/lib, чтобы упорядочить их, а затем я также устанавливаю их с помощью Maven в локальное хранилище.

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

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

ОБНОВЛЕНИЕ: Теперь, когда я знаю, что вы используете maven, предложение немного меняется.Я понимаю, что вы не хотите просто вручную устанавливать библиотеки в свой локальный репозиторий, что имеет смысл.Я бы ответил, что это намного Чище, чем сбрасывать их в какую-то глобальную библиотечную папку.(И вам не нужно собирать всех противников LD_LIBRARY_PATH :)).

Еще одна мысль - настроить собственный репозиторий maven и сохранить там свои библиотеки.

Это действительно приходитвплоть до того, что вы пытаетесь сделать.Вы просто хотите написать какой-нибудь код, который никогда не покинет ваш ящик, или вы хотите хорошее портативное решение или что?Нам определенно нужно немного контекста.

0 голосов
/ 06 мая 2013

Если вы запускаете приложение через командную строку (Терминал), и приложение поставляется с jar, который вызывается через скрипт оболочки (.sh), грязная опция (которую я, к сожалению, иногда использую) будет копировать jar вВы /System/Library/Java/Extensions путь.

Я полагаю, что ваша проблема была в пропущенном /System/ на вашем пути.

0 голосов
/ 16 апреля 2011

У вас должен быть Tomcat для локального развития. Вы можете установить Nexus на него, а затем иметь свой собственный репозиторий, который вы также можете легко переместить, если понадобится в будущем (и это дает вам возможность добавлять артефакты через веб-интерфейс, а не из командной строки с maven 2 шага пом и * ар).

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