Минимальный набор библиотек, необходимых для использования реализации 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>