0

我计划使用 Jackrabbit 开发在线文档库。为了开发简单的 POC,我把jackrabbit-standalone.jar我的类路径放在里面,一切正常。

但是在打开的jackrabbit-standalone.jar时候,我发现它本身就是一个网络项目。我从类路径中复制了所有 jarjackrabbit-standalone.jar/WEB-INF/lib并保存在我的类路径中,我的项目再次正常工作。

我在这里担心的是我不想在我的项目中保留任何额外的罐子。所以我的问题是:

  • 与 Jackrabbit 存储库交互所需的最小 jars 是什么?
  • 根据企业标准,在 Web 项目中使用 jackrabbit 的最佳方式是什么。它是在类路径中使用独立 jar 还是仅使用所需的 jar?
4

2 回答 2

1

我不会问你为什么要为 POC 剪掉不必要的罐子。

你用maven吗?如果是这样,您只需添加jackrabbit-core,它就会拉下依赖关系。

如果您需要 JCR API,您还需要 jackrabbit-spi2jcr。

否则,这就是我们最终的结果(版本 2.6.4):

  • commons-collections-3.2.1.jar
  • commons-dbcp-1.3.jar
  • commons-pool-1.5.4.jar
  • 并发 1.3.4.jar
  • jackrabbit-api-2.6.4.jar
  • jackrabbit-core-2.6.4.jar
  • jackrabbit-jcr-commons-2.6.4.jar
  • jackrabbit-spi-2.6.4.jar
  • jackrabbit-spi-commons-2.6.4.jar
  • jackrabbit-spi2jcr-2.6.4.jar
  • jcl-over-slf4j-1.6.4.jar
  • jcr-2.0.jar
  • log4j-1.2.16.jar
  • lucene-core-3.6.0.jar
  • slf4j-api-1.6.4.jar
  • slf4j-log4j12-1.6.4.jar
  • tika-core-1.3.jar

如果不需要,您可以省去日志罐。不确定您是否可以摆脱 lucene-core,因为我相信它是在内部使用的。

关于如何使用jackrabbit,这完全取决于你。您可以将其用作独立服务器,也可以像我们一样用作您的持久层。我们使用 JCR api。

于 2014-09-23T16:05:55.710 回答
1

您可以使用mavengradle为您管理依赖项。

如果您使用的是 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>
于 2014-09-24T04:27:50.087 回答