Как добавить javax. * Зависимости в Maven? - PullRequest
20 голосов
/ 25 июня 2009

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

Ответы [ 5 ]

12 голосов
/ 25 июня 2009

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

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

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

5 голосов
/ 25 июня 2009

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

<repositories>
   <repository>
      <id>java.net repository</id>
      <url>http://download.java.net/maven/2</url>
   </repository>
</repositories>
4 голосов
/ 26 августа 2009

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

  1. установить mvn repo mgr (см. Список - imo, nexus действительно прост для начала);
  2. используйте пользовательский файл settings.xml, содержащий раздел «зеркала», указывающий на вашу интранет-версию mvn repo mgr. Либо обновите ваш ~ / .m2 / settings.xml, либо запустите maven с помощью «mvn -s etc / settings.xml» - полезно для сборок hudson, где вам не нужны пользовательские settings.xml для каждого пользователя;
  3. вручную загрузить ваши «проблемные» банки во внутреннее хранилище (опять же, супер-просто с Nexus через веб-интерфейс);
  4. настроить внутренний 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

3 голосов
/ 27 июня 2009

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 jar не может быть вставлен в репозиторий Maven, потому что двоичная лицензия Sun (я знаю, это отстой). Чтобы использовать его, вам нужно вручную загрузить JAR (это бесплатно) и поместить его в локальный репозиторий или использовать версию 1.0.1B, которая содержится в java.net.

ПРИМЕЧАНИЕ. В некоторых местах я читал, что JTA будет интегрирован в будущие версии JDK

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

2 голосов
/ 03 января 2013

В частном случае 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

Спасибо всем за то, что поделились!

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