0

次のようにpomファイルにmaven-compiler-pluginがありますが、コンパイラーは汎用パラメーターに腹を立てます。私の Maven バージョンは「Apache Maven 3.0.3 (r1075438; 2011-02-28 19:31:09+0200)」です。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
        <compilerVersion>1.6</compilerVersion>
    </configuration>
</plugin>

そして、コンパイラが怒るクラスは次のとおりです

List<EulTransactionHistory> list = hibernateTemplate.findByCriteria(criteria, -1, 1);
EulTransactionHistory existingRecord = DBUtils.oneAndOnlyOne(list);

DBUtils.oneAndOnlyOne の仕様は次のとおりです。

public static <T> T oneAndOnlyOne(List<T> list) {...}

最後に例外は

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project etlscheduler: Compilation failure: Compilation failure SchedulerDaoImpl.java:[329,18] incompatible types
found   : java.lang.Object
required: com.aric.etlscheduler.domain.EulTransactionHistory

さらに、このプロジェクトをEclipseでコンパイルすると、正常にコンパイルされます。

4

4 に答える 4

0

クラスを含むjarがcom.aric.etlscheduler.domain.EulTransactionHistory、プロジェクトのクラスパスにありません。プロジェクトのpomに依存関係としてjarを追加したことを確認してください。

于 2011-08-18T07:34:19.127 に答える
0

コンパイラエラーから、これがおそらく起こっていることのように見えます。

  • DBUtils.oneAndOnlyOne(list)Objectの代わりに戻っていEulTransactionHistoryます。
  • これは、メソッドに渡されるリストがのリストでObjectsあり、のリストではないためですEulTransactionHistory
  • これは、がのリストではなく、のリストhibernateTemplate.findByCriteria()を返すためです。ObjectsEulTransactionHistory
于 2011-08-18T09:21:44.580 に答える
0

329行目が

EulTransactionHistory existingRecord = DBUtils.oneAndOnlyOne(list);

それは、1) Maven クラスパスの最初の DBUtils クラスに、java.lang.Object を返す oneAndOnlyOne() メソッドがあるか、2) 渡そうと思っているリストではなく、パラメータ化されていない List またはリスト。

于 2011-08-18T14:12:41.457 に答える
0

DBUtils は別のプロジェクトにあり、一度にオブジェクトを返す DBUtils.oneAndOnlyOne() を持っていましたか? その場合、そのプロジェクトに Maven をインストールする必要があります。

Maven は最後にインストールされた jar を使用しますが、Eclipse は、通常の方法で設定したと仮定して、他のプロジェクトを直接スヌーピングします。

于 2011-08-18T14:33:07.947 に答える