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

Как добавить javax. * Зависимости в Maven?

Я устал от ручной установки javax jar файлов в Maven и хотел бы знать, что является лучшим решением для включения зависимости от javax.cache, javax.transaction или других JSR, которые нелегко найти в репозиториях Maven.

4b9b3361

Ответ 1

Вы видели http://maven.apache.org/guides/mini/guide-coping-with-sun-jars.html?

Эта ссылка предлагает использовать идентификатор groupID и artifactID, а также репозиторий java.net.

Мне кажется, что почти все они существуют в центральном репозитории Maven по этой схеме именования.

Ответ 2

Я не знаю об этом, но добавление репозитория java.net может помочь вам с некоторыми из этих зависимостей:

<repositories>
   <repository>
      <id>java.net repository</id>
      <url>http://download.java.net/maven/2</url>
   </repository>
</repositories>

Ответ 3

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

  • установить mvn repo mgr (см. список - imo, nexus на самом деле очень просто начать);
  • используйте собственный файл settings.xml, который включает раздел "Зеркала", указывающий на ваш mvn repo mgr вашей интранет. Либо обновите свой файл ~/.m2/settings.xml, либо запустите maven с помощью "mvn -s etc/settings.xml" - полезно для сборников hudson, где вам не нужны пользовательские настройки для пользователя .xml;
  • вручную загрузите свои "проблемные" банки в свое внутреннее репо (опять же, супер-просто с Nexus через веб-интерфейс);
  • настроить внутренний mvn repo mgr как "зеркало" repo1.maven.org/maven2, codehaus, java.net,... (и т.д.).

Теперь вы можете централизованно определять все сторонние репозитории и сторонние банки - вместо того, чтобы требовать каждого человека, каждый ящик и/или каждый проект определяют их индивидуально в своем pom или settings.xml. Каждый проект/человек/поле ТОЛЬКО определяет ваше центральное внутреннее репозиторинг maven как единственное репо для всех проектов maven.

Это также действительно ускоряет время повторной загрузки артефакта для свежих сборников или в те моменты, когда вам нужно (или хотите) удалить локальный кеш ~/.m2/репозиторий.

Менеджеры репо: nexus, archiva, artifactory... например,: maven.apache.org/repository-management.html  - http://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix

Ответ 4

javax.cache находятся в артефакте jcache:jcache:1.0-XXX (в центральном репо Maven)

<dependency>
    <groupId>jcache</groupId>
    <artifactId>jcache</artifactId>
    <version>1.0-dev-2</version>
</dependency> 

javax.transaction.* классы находятся в артефакте javax.transaction:jta:1.1, jTA не может быть вставлен в репозиторий Maven, потому что двоичная лицензия Suns (я знаю, это отстой). Чтобы использовать его, вам необходимо вручную загрузить JAR (он бесплатный) и поместить его в локальное репо или использовать версию 1.0.1B, которая содержится в java.net.

ПРИМЕЧАНИЕ. Я прочитал в каком-то месте JTA будет интегрирован в будущие версии JDK

Я знаю, что это действительно боль, чтобы найти эти артефакты в репозиториях Maven, но вы можете сделать поиск класса в www.mvnrepository.com, и он покажет вам правильный файл groupId и artifactId для большинства пакетов.

Ответ 5

В частном случае JTA я попал в это сообщение:

http://www.jugpadova.it/articles/2005/11/26/maven-2-spring-and-jta-depencies

.., что имеет смысл, если мне не нужно было тратить много времени на Oracle ужасный сайт, чтобы получить форматированный JAR файл. (Я сам был энтузиастом Oracle, но этот сайт мог использовать много UX-переделок здесь и там).

Я решил заменить зависимость от того, что Hibernate предоставляет через Geronimo в соответствии с этим сообщением (отлично работает):

https://forum.hibernate.org/viewtopic.php?p=2420836

С лицензией Java и Maven в настоящее время работает команда Hibernate, или, похоже, здесь:

https://hibernate.onjira.com/browse/HHH-4548

Спасибо всем за обмен!