Минимальный набор библиотек, необходимых для использования реализации JCR Jackrabbit?

Я планирую использовать Jackrabbit для разработки онлайн-библиотеки документов. Чтобы разработать простые POCs, я поставил jackrabbit-standalone.jar внутри моего класса путь и все работает нормально.

Но на открытии jackrabbit-standalone.jarЯ узнал, что это веб-проект сам по себе. Я скопировал все банки из jackrabbit-standalone.jar/WEB-INF/lib и держится на моем пути к классу, и мой проект снова работает нормально.

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

  • Каковы минимальные банки, которые требуются для взаимодействия с хранилищем Jackrabbit?
  • Каков наилучший способ использования крольчонка в веб-проекте согласно корпоративным стандартам? Использует ли он автономный jar в пути к классу или использует только необходимые jar?

2 ответа

Я не буду спрашивать, почему вы хотите вырезать ненужные банки для POC.

Вы используете Maven? Если это так, вы просто добавляете jackrabbit-core, и он будет разрушать зависимости.

Если вам требуется JCR API, вам также понадобится jackrabbit-spi2jcr.

В противном случае это то, что мы в итоге (версия 2.6.4):

  • Викисклад коллекция-3.2.1.jar
  • Обще-ДБХП-1.3.jar
  • Обще-бассейн-1.5.4.jar
  • одновременно-1.3.4.jar
  • Jackrabbit-апи-2.6.4.jar
  • Jackrabbit-ядро-2.6.4.jar
  • Jackrabbit-JCR-Обще-2.6.4.jar
  • Jackrabbit-СПИ-2.6.4.jar
  • Jackrabbit-СПИ-Обще-2.6.4.jar
  • Jackrabbit-spi2jcr-2.6.4.jar
  • JCL-над-SLF4J-1.6.4.jar
  • JCR-2.0.jar
  • log4j-1.2.16.jar
  • Lucene-ядро-3.6.0.jar
  • SLF4J-апи-1.6.4.jar
  • SLF4J-log4j12-1.6.4.jar
  • ТИК-ядро-1.3.jar

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

Относительно того, как использовать крольчонка, это полностью зависит от вас. Вы можете использовать его в качестве автономного сервера или, как и мы, в качестве своего постоянного уровня. Мы используем API JCR.

Вы можете использовать Maven или Gradle для управления зависимостями для вас.

Если вы используете maven, вы можете узнать дерево зависимостей с помощью команды:

mvn dependency:tree

и пересмотреть отношения между артефактами.

И вы можете исключить ненужные части с помощью выражений исключения:

<dependency>
  <groupId>sample.ProjectA</groupId>
  <artifactId>Project-A</artifactId>
  <version>1.0</version>
  <scope>compile</scope>
  <exclusions>
    <exclusion>  <!-- declare the exclusion here -->
      <groupId>sample.ProjectB</groupId>
      <artifactId>Project-B</artifactId>
    </exclusion>
  </exclusions> 
</dependency>
Другие вопросы по тегам