2015-04-30 1 views
1

Pour une raison quelconque cette commande fonctionne très bien avec ma machine locale:Maven compiler « Impossible de trouver le symbole »

mvn clean install -DskipTests=true -Psdk 

Cependant, pour Codeship il ne fonctionne maintenant et lance cette erreur « Impossible de trouver le symbole ». En Codeship la commande complète est la suivante:

jdk_switcher use oraclejdk8 
echo $JAVA_HOME 
mvn clean install -DskipTests=true -Psdk 

Dans le POM du dépôt ont ceci:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.1</version> 
    <configuration> 
     <source>1.7</source> 
     <target>1.7</target> 
    </configuration> 
</plugin> 

Erreur:

[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ client-app --- 
[INFO] Changes detected - recompiling the module! 
[INFO] Compiling 65 source files to /home/rof/src/bitbucket.org/company/client-app/target/classes 
[INFO] ------------------------------------------------------------- 
[ERROR] COMPILATION ERROR : 
[INFO] ------------------------------------------------------------- 
[ERROR] /home/rof/src/bitbucket.org/company/client-app/src/main/java/com/client/rest/resources/MyResource.java:[3,61] cannot find symbol 
symbol: class MyEntity 
+1

Nous avons besoin de voir le message d'erreur complet. – JonK

+1

Il vous manque une dépendance ou votre code est le problème! – khmarbaise

+0

Je pense que c'est assez clair: la classe 'MyEntity' n'est pas incluse dans le chemin de classe de compilation. – m0skit0

Répondre

1

Votre Maven est en train de lire la version Java 1.8, Où, comme le pom.xml dit que la version est 1.7.

Essayez d'installer la version requise.

Si déjà installé, vérifiez votre variable d'environnement $ JAVA_HOME, elle doit contenir le chemin de Java JDK 8. Si vous ne le trouvez pas, corrigez votre variable d'environnement.

également supprimer les lignes

<fork>true</fork> 
    <executable>${JAVA_1_8_HOME}/bin/javac</executable> 

du pom.xml

2

J'ai eu le même problème. raison était l'un de la classe a été utilisée dans

src/main/java/ 

Où comme réelle, il était présent dans

src/test/java 
+0

Alors qu'avez-vous fait à ce sujet? Aidera si vous pouvez donner ce que vous avez fait pour résoudre le problème. –

+0

J'ai changé la référence. cette erreur peut se produire pour plusieurs raisons. Le mien était celui-ci. Quel problème avez-vous? – user4906240

+0

Une semblable. J'avais une classe dans src/main/java qui utilisait la référence d'une classe qui était dans src/test/java. Ainsi, lorsque la cible de compilation par défaut a été exécutée, elle n'a pas pu trouver la classe de test dans src/main/java. –

1

Si vous avez correctement importé la dépendance, vous pouvez l'essayer le processus suivant.
Première répar-
mvn clean
si qui fonctionne avec succès puis répar-
mvn install
Si cela fonctionne bien alors vous pouvez répar-
mvn compile
Ce processus a fonctionné pour moi.

+0

Btw, ce problème peut se produire pour plusieurs raisons. Premier problème de dépendance. Deuxièmement, problème de référence. etc. Si tout le problème a été résolu et que vous obtenez toujours l'erreur, vous pouvez essayer le processus ci-dessus. – Pritom