知识库

解决依赖问题

有多种方法可以包含 Neo4j Artifact。在本文中,我们将基于不同的场景或错误来重点介绍 Maven。最常见的问题是在 pom.xml 中正确设置依赖项。

验证您是否拥有正确的依赖项

您可以在包含 pom.xml 的文件夹中执行以下 Maven 命令

# resolve dependency in the local repository (by default in ~/.m2/)
$ mvn dependency:resolve

# displays the dependencies as a tree
$ mvn dependency:tree

# purge local repo and resolve dependencies
$ mvn dependency:purge-local-repository

# perform integration tests
$ mvn verify

在 3.5 版本中,即使您正在运行单元测试,也只需要 3 个 Artifact

对于企业版,您的 pom.xml 应包含

pom.xml
<project>
  <!-- .... -->
  <properties>
    <neo4j.version>3.5.6</neo4j.version>
  </properties>
  <dependencies>
    <dependency>
       <groupId>com.neo4j</groupId>
       <artifactId>neo4j-enterprise</artifactId>
       <version>${neo4j.version}</version>
       <scope>provided</scope>
    </dependency>
    <dependency>
       <groupId>org.neo4j.driver</groupId>
       <artifactId>neo4j-java-driver</artifactId>
       <version>${neo4j-java-driver.version}</version>
       <scope>test</scope>
    </dependency>
    <dependency>
       <groupId>com.neo4j.test</groupId>
       <artifactId>neo4j-harness-enterprise</artifactId>
       <version>${neo4j.version}</version>
       <scope>test</scope>
    </dependency>
  </dependencies>
  <!-- ... -->
</project>

对于社区版,您的 pom.xml 应包含

pom.xml
<project>
  <!-- ... -->
  <properties>
    <neo4j.version>3.5.6</neo4j.version>
  </properties>
  <dependencies>
    <dependency>
      <groupId>org.neo4j</groupId>
      <artifactId>neo4j</artifactId>
      <version>${neo4j.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.neo4j.driver</groupId>
      <artifactId>neo4j-java-driver</artifactId>
      <version>${neo4j-java-driver.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.neo4j.test</groupId>
      <artifactId>neo4j-harness-enterprise</artifactId>
      <version>${neo4j.version}</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <!-- ... -->
</project>

使用配置为镜像仓库的私有 Sonatype Nexus 解析依赖项

这是首选方法。它允许您保持最新状态并自动获取更新。为此,您需要以管理员身份登录 Nexus 或联系您的 Nexus 管理员,并确保仓库可用且健康。

  • 对于社区版,您需要添加一个仓库

org.neo4j:neo4j,公共 Maven 仓库 URL 是 https://repo.maven.apache.org/maven2/

  • 对于企业版,您需要添加以下两个仓库

com.neo4j:neo4j-enterprise (请参阅“Neo4j 企业版 Artifact 的 KB 依赖项位置”获取 URL/用户名/密码)

org.neo4j:neo4j (可在公共仓库 https://repo.maven.apache.org/maven2/ 上获取)

命名约定是 groupId:artifactId。例如:org.neo4j:neo4j 实际上是 groupid=org.neo4j AND artifactId=neo4j

使用配置为托管仓库的私有 Sonatype Nexus 解析依赖项

不推荐使用此方法,因为它需要手动操作且容易出错。应作为最后的解决方案使用。

请记住,根据版本和使用的范围,Neo4j 需要 70-200 多个 Artifact。

  • 最简单的实现方法是下载所有依赖项后,压缩 .m2/repository 文件夹

  • 您需要将 jar 和相关的 pom 文件上传到您的仓库中。

  • 执行以下 Maven 命令,并在可以访问官方仓库的机器上进行比较

$ mvn dependency:tree

如果您发现差异,请使用 Web 浏览器浏览您的 Nexus 仓库,并检查 .pom 文件的签名。

使用本地文件夹解析依赖项(需要互联网)

这是最简单的方法,但您最终必须重复这些步骤才能升级到最新的维护版本。

  • 打开终端并进入包含 pom.xml 的项目文件夹

  • 使用以下 mvn 命令从可访问互联网的源机器下载 jar。它会将它们复制到本地文件夹中

mvn dependency:go-offline -Dmaven.repo.local=./remoterepo

(如果您的互联网受限,您可以请求支持来完成此操作)

  • 在源机器上压缩文件夹

  • 在目标机器上解压缩

  • 在您的 pom.xml 中指定以下内容

pom.xml
<repositories>
  <repository>
    <id>neo4j</id>
    <url>file://</url>
    <!-- ie <url>file:///home/neo4j/maven/remoterepo</url> -->
  </repository>
  <repository>
    <id>neo4j-enterprise</id>
    <url>file://</url>
    <!-- ie <url>file:///home/neo4j/maven/remoterepoenterprise</url> -->
  </repository>
</repositories>
© . All rights reserved.