8
votes

Même code source, Eclipse Build Success mais Maven (Javac) échoue

Conservez cette erreur lors de la compilation à l'aide de Maven:

type parameters of <X>X cannot be determined; no unique maximal instance exists for type variable X with upper bounds int,java.lang.Object


0 commentaires

4 Réponses :


3
votes

Quelques choses à regarder:

  1. Eclipse et Maven utilise la même installation Java / Bin
  2. Eclipse et Maven utilisent les mêmes bibliothèques, on pourrait avoir quelque chose que l'autre ne le fait pas.

1 commentaires

Je viens de réaliser que le compilateur expédié avec Eclipse n'est pas la même chose que le compilateur Java officiel de Sun.



12
votes

Ce problème peut se produire lorsque votre code est générique et appelle une autre méthode comportant un type de retour générique. Parfois, le compilateur est confus essayant de déterminer comment résoudre le type d'appel / retour de méthode.

Il peut être résolu en ajoutant une mise en forme explicite à votre code. P>

// Old code:
public T getValue() {
    return otherMethod();  // otherMethod has the signature: <RT> RT otherMethod() { ... }
}

// New code:
@SuppressWarnings("unchecked")
public T getValue() {
    return (T) otherMethod();   // the cast tells the compiler what to do.
}


0 commentaires

0
votes

J'ai rencontré la même erreur, utilisez la fourmi. Parce que lors de la compilée par ant ou maven, Javac utilise JDK pour compiler.Mais dans Eclipse, il peut compiler le succès.

i Ajouter ci-dessous script dans mon fichier build.xml: Ensuite, la fourmi peut renforcer le succès.

Je ne suis pas familier avec Maven. Peut-être que cela peut définir le compilateur?

Dans mon code source, il existe de nombreux codes comme celui-ci: Public x Recherche (chaîne HQL, objet ... valeurs) { retour (x) hibernateutilss.creequacer (greatession (), hql, valeurs) .UnIqueresult (); }

Peut-être votre code aussi.

Mais utilisez JDT, le succès n'est le succès final, dans la fourmi. build.xml ne peut créer de succès que dans Eclipse. Lorsque j'exécute une fourmi de la commande Windows, échouez. Lancer une autre erreur: Classe non trouvée: org.eclipse.jdt.core.jdtcompilerAdapter

PS, j'ai copier des fichiers JAR sur JDT dans Eclipse Plugin vers Ant_Home / LIF Annuaire.

Je souhaite un peu d'aide pour vous. Et notre problème peut résoudre.


0 commentaires

0
votes

Cela doit définitivement faire quelque chose avec les versions JDK Maven et Eclipse utilisent. Assurez-vous également que votre niveau de conformité du compilateur dans Eclipse pointe vers la version JDK droite.


0 commentaires