我有一个带依赖关系的maven项目(datanucleus-db4o)。此依赖项本身依赖于db4o(db4o:db4o:jar:7.12.126.14142-all-java5)。
现在maven说:
09.09.10 19:43:09 MESZ: Missing artifact db4o:db4o:jar:7.12.126.14142-all-java5:compile
我是maven的新手。 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>
答案 0 :(得分:3)
datanucleus-db4o是否正确定义了自己与特定版本号的依赖关系?这是一个好方法吗?
我不确定我是否明白这个问题......无论如何,datanucleus-db4o工件的db4o:db4o
依赖确实存在问题:它在Maven中心和{{3 }}。我不明白用户应该如何使用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错误。这引出了另一个问题:
不能说因为你没有发布错误。但请尝试以上内容。
答案 1 :(得分: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和这些东西不兼容。