2

依存関係 (datanucleus-db4o) を持つ Maven プロジェクトがあります。この依存関係自体は、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>
4

2 に答える 2

3

datanucleus-db4o が特定のバージョン番号で独自の依存関係を定義しているのは正しいですか? これは良い方法ですか?

質問を理解できたかどうかわかりません...とにかく、db4o:db4odatanucleus-db4o アーティファクトの依存関係には確かに問題があります。Maven セントラルでもDataNucleus リポジトリでも利用できません。ユーザーが 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 に答える