2

我有一个依赖项(datanucleus-db4o)的maven项目。这种依赖本身就依赖于 db4o (db4o:db4o:jar:7.12.126.14142-all-java5)。

现在行家说:

09.09.10 19:43:09 MESZ: Missing artifact db4o:db4o:jar:7.12.126.14142-all-java5:compile

我是新手。datanucleus-db4o 用特定的版本号定义自己的依赖关系对吗?这是一个好方法吗?m2eclipse 无法下载。我下载了一个较新版本的 db4o 并将其添加到类路径中。Maven 一直在写关于丢失的工件。

当我启动我的应用程序时,我也遇到了 NoClassDefFound 错误。这让我想到了另一个问题:

难道我做错了什么?

提前致谢。

这是 pom.xml 的相关部分...

<dependency>
  <groupId>org.datanucleus</groupId>
  <artifactId>datanucleus-core</artifactId>
  <version>2.2.0-m1</version>
  <type>jar</type>
  <scope>runtime</scope>
</dependency>
<dependency>
  <groupId>org.datanucleus</groupId>
  <artifactId>datanucleus-db4o</artifactId>
  <version>2.1.1</version>
  <type>jar</type>
  <scope>compile</scope>
</dependency>

这是 pom.xml 的相关部分

<dependency>
  <groupId>db4o</groupId>
  <artifactId>db4o</artifactId>
  <version>7.12.126.14142-all-java5</version>
</dependency>
4

2 回答 2

3

datanucleus-db4o 用特定的版本号定义自己的依赖关系对吗?这是一个好方法吗?

我不确定我是否理解了这个问题......无论如何,datanucleus-db4o 工件的依赖关系确实存在问题:它在 Maven 中心和DataNucleus 存储库db4o:db4o中都不可用。我不明白用户应该如何使用 datanucleus-db4o 工件。

我下载了一个较新版本的 db4o 并将其添加到类路径中。Maven 一直在写关于丢失的工件。

不确定您到底做了什么,但也许以下方法会起作用:排除无法解析的依赖项并将其替换为 db4o 存储库中的一些等效项。

<dependencies>
  ...
  <dependency>
    <groupId>org.datanucleus</groupId>
    <artifactId>datanucleus-db4o</artifactId>
    <version>2.1.1</version>
    <type>jar</type>
    <scope>compile</scope>
    <exclusions>
      <exclusion>
        <groupId>db4o</groupId>
        <artifactId>db4o</artifactId>
      </exclusion>
    </exclusions>
  </dependency>
  <dependency>
    <groupId>com.db4o</groupId>
    <artifactId>db4o-full-java5</artifactId>
    <version>7.12-SNAPSHOT</version>
  </dependency>
</dependencies>
<repositories>
  ...
  <repository>
    <id>db4o</id>
    <url>https://source.db4o.com/maven</url>
  </repository>
</repositories>

我不知道这是否会奏效。

当我启动我的应用程序时,我也遇到了 NoClassDefFound 错误。这让我想到了另一个问题:

不能说,因为你没有发布错误。但是试试上面的。

于 2010-09-09T19:21:37.307 回答
0

所需的文件不在 maven 存储库中,但它在 datanucleus zip 文件中(具有所有依赖项的文件)。查看 /deps 文件夹。

我将其解压缩并使用以下命令将其安装到本地 maven 存储库中:

./mvn install:install-file -Dfile=/home/myUser/Downloads/db4o-7.12.126.14142-all-java5.jar -DgroupId=db4o -DartifactId=db4o -Dversion=7.12.126.14142-all-java5 -Dpackaging=jar

之后它被maven找到。现在还有其他问题正在发生。我会尝试自己解决它们...

似乎 JDO 或 Datanucleus 的东西目前组织得不好。我认为他们重构了一些类,现在在某些版本中找不到它们,并且实现与 api 等不兼容。

于 2010-09-09T20:15:26.013 回答