J'ai un problème étrange - Certains fichiers de classe ne pouvaient pas être lus pendant la construction de Maven.
A
et un projet B
.B
dépend du fichier JAR cible du projet A
.Lors de la compilation du projet B
, il est impossible de lire lib dans le fichier JAR du projet A
- bien que la partie qui lui est destinée soit parfaite.
J'ai également vérifié et vérifié le script Maven et il est parfait.
Erreur:
[INFO] Compiling 137 source files to V:\dhs_tss_build_view\dhs_tssproject\tss\tsscommon-server\target\classes
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure
V:/dhs_tss_build_view/dhs_tssproject/tss/tsscommon-server/src/main/Java/us/mn/state/dhs/tss/common/oblix/da/wsdl/OblixLoginAc
cess.Java:[51,60] cannot find symbol
symbol : class BusinessException
location: class us.mn.state.dhs.tss.common.oblix.da.wsdl.OblixLoginAccess
V:/dhs_tss_build_view/dhs_tssproject/tss/tsscommon-server/src/main/Java/us/mn/state/dhs/tss/common/app/da/ldap/BaseLdapImpl.j
ava:[187,14] cannot find symbol
symbol : class Phone
location: class us.mn.state.dhs.tss.common.app.da.ldap.BaseLdapImpl
V:/dhs_tss_build_view/dhs_tssproject/tss/tsscommon-server/src/main/Java/us/mn/state/dhs/tss/common/app/da/ldap/BaseLdapImpl.j
ava:[204,14] cannot find symbol
symbol : class Phone
location: class us.mn.state.dhs.tss.common.app.da.ldap.BaseLdapImpl
[INFO] ------------------------------------------------------------------------
[DEBUG] Trace
org.Apache.maven.BuildFailureException: Compilation failure
at org.Apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.Java:579)
at org.Apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.Java:499)
at org.Apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.Java:478)
at org.Apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.Java:330
)
at org.Apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.Java:291)
at org.Apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.Java:142)
at org.Apache.maven.DefaultMaven.doExecute(DefaultMaven.Java:336)
at org.Apache.maven.DefaultMaven.execute(DefaultMaven.Java:129)
at org.Apache.maven.cli.MavenCli.main(MavenCli.Java:287)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:39)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:25)
at Java.lang.reflect.Method.invoke(Method.Java:585)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.Java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.Java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.Java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.Java:375)
Caused by: org.Apache.maven.plugin.CompilationFailureException: Compilation failure
at org.Apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.Java:516)
at org.Apache.maven.plugin.CompilerMojo.execute(CompilerMojo.Java:114)
at org.Apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.Java:451)
at org.Apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.Java:558)
... 16 more
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 minute 56 seconds
[INFO] Finished at: Mon Oct 19 09:46:53 CDT 2009
[INFO] Final Memory: 11M/20M
[INFO] ------------------------------------------------------------------------
J'ai eu le même problème et voici comment je vous suggère de le résoudre:
Courir:
mvn dependency:list
et lisez attentivement si des messages d’avertissement indiquent que, pour certaines dépendances, il n’y aura pas de dépendances transitives disponibles.
Si oui, relancez-le avec l'indicateur -X:
mvn dependency:list -X
pour voir des informations détaillées de quoi se plaint Maven (il pourrait y avoir beaucoup de sorties pour le drapeau -X)
Dans mon cas, il y avait un problème dans le module maven dépendant, pom.xml - avec dépendance gérée. Bien qu'il existe une version pour la dépendance gérée définie dans pom parent, Maven n'a pas pu la résoudre et s'est plaint de la version manquante dans le fichier pom.xml dépendant
Donc, je viens de configurer la version manquante et le problème a disparu.
Essayez d'utiliser:
mvn clean package install
Cette commande devrait installer vos artefacts dans votre dépôt Maven local.
PS: Je vois qu’il s’agit d’une question ancienne, mais elle pourrait être utile à l’avenir.
Cela pourrait être dû à une mémoire insuffisante.
Cela semble étrange, mais essayez, ça pourrait marcher:
export MAVEN_OPTS='-Xms384M -Xmx512M -XX:MaxPermSize=256M'
Source: https://groups.google.com/group/neo4j/msg/e208be9ee1c101d7 )
Vous pouvez essayer d'exécuter la commande "site mvn" et voir quelles dépendances transitives vous avez, puis résoudre les conflits potentiels (en supprimant une dépendance implicite quelque part). Juste une supposition (il est un peu difficile de savoir ce que le problème pourrait être sans voir votre info pom) ...
j'ai une erreur comme celle-ci, mais après
1/
mvn Eclipse:clean
mvn Eclipse:eclipse -Dwtpversion=2.0
2 / Lancez Eclipse et ouvrez le projet
3 /
mvn package
c'est du travail
J'ai eu un problème similaire et je n'ai jamais rien trouvé sur le Web après une recherche excessive.
J'ai examiné le fichier pom.xml
et, dans les dépendances, j'ai modifié l'étendue du <dependency>
il: <scope>test</scope>
en <scope>compile</scope>
.
Auparavant, je ne l'utilisais que pour des tests mais je changeais la structure du projet et je ne savais jamais que je devais changer cela.
test: Cette portée indique que la dépendance n'est pas requise pour utilisation normale de l'application, et est uniquement disponible pour le test phases de compilation et d'exécution.
compile: Il s'agit de la portée par défaut, utilisée si aucune n'est spécifiée. Compiler les dépendances sont disponibles dans tous les chemins de classes d'un projet . De plus, ces dépendances sont propagées aux projets dépendants.
Voici une référence de Apache Maven Docs: https://maven.Apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope
C'est aussi important l'ordre des dépendances. J'ai eu le même problème. Et fondamentalement, je devais mettre d'abord les dépendances scope test
, puis scope compile
dans le pom.xml
. Si je mets d'abord le scope compile
puis le scope test
, il échouera.
L'erreur est assez claire: "ne trouve pas le symbole". Certaines dépendances ne peuvent pas être résolues (vous avez même la ligne et la colonne dans la trace de la référence qui ne peuvent pas être résolues):
V:/dhs_tss_build_view/dhs_tssproject/tss/tsscommon-server/src/main/Java/us/mn/state/dhs/tss/common/oblix/da/wsdl/OblixLoginAc
cess.Java:[51,60] cannot find symbol
symbol : class BusinessException
location: class us.mn.state.dhs.tss.common.oblix.da.wsdl.OblixLoginAccess
V:/dhs_tss_build_view/dhs_tssproject/tss/tsscommon-server/src/main/Java/us/mn/state/dhs/tss/common/app/da/ldap/BaseLdapImpl.j
ava:[187,14] cannot find symbol
symbol : class Phone
location: class us.mn.state.dhs.tss.common.app.da.ldap.BaseLdapImpl
V:/dhs_tss_build_view/dhs_tssproject/tss/tsscommon-server/src/main/Java/us/mn/state/dhs/tss/common/app/da/ldap/BaseLdapImpl.j
ava:[204,14] cannot find symbol
symbol : class Phone
location: class us.mn.state.dhs.tss.common.app.da.ldap.BaseLdapImpl
Ci-dessous quelques points à vérifier:
Maven fonctionne bien, vous avez une erreur quelque part.
J'ai eu le même problème...
Comment réparer - ajoutez les propriétés suivantes au pom.xml
<properties>
<!-- compiler settings -->
<maven.compiler.source>1.6</maven.compiler.source>
<maven.compiler.target>1.6</maven.compiler.target>
</properties>
Mon hypothèse est une mauvaise version du projet A jar dans votre référentiel Maven local. Il semble que la dépendance soit résolue, sinon je pense que maven ne commence pas à compiler, mais généralement ces erreurs de compilation signifient que vous avez une confusion de version. essayez de créer un maven clean install
de votre projet A et voyez si cela change quelque chose pour le projet B ... De plus, un peu plus d'informations sur vos paramètres pourraient être utiles:
allez dans le dépôt maven et ouvrez le fichier jar [conseil: vous pouvez utiliser winzip] du module source pour vérifier la classe spécifique présente.
Dans mon cas ce n'est pas. Puis j'ai trouvé ci-dessous.
si vous utilisez le plugin org.Apache.felix/maven-bundle-plugin
Assurez-vous que le module source a un package d'exportation défini
exemple: com.xxx.camel.dao
Il est facile d'obtenir cette erreur dans un projet multi-module. Si, par exemple, vous apportez des modifications aux modules A, B et C, mais tentez ensuite de ne compiler que le module B, vous risquez cette erreur. Supposons que le module B dépende du module A. Etant donné que seul le module B a été compilé, les fichiers de classe du module A sont maintenant obsolètes et éventuellement invalides.
La compilation de tous les modules (ou des modules dans le bon ordre de dépendance hiérarchique) résout cette erreur, si telle est la nature de votre problème.
A l'intérieur de votre classe sur laquelle vous vous plaignez, maven est une dépendance qui appartient à un jar essayez ces jars reconstruits avec la commande maven, j'utilise cette commande mvn clean install -DskipTests=true
devrait fonctionner dans ce cas où certains symboles de classes sont manquants
Après avoir exécuté la commande suivante: -mvn clean package install
J'ai trouvé le problème:'dependencies.dependency.scope' for org.springframework.boot:spring-boot-starter-data-rest:pom must be one of [provided, compile, runtime, test, system] but is 'import'. @ line 13, column 11
L'une des dépendances était marquée comme "importation". Changer le «champ d'application» a résolu le problème pour moi.
Si vos dépendances sont bien (vérifiez avec mvn dependency: list) comme les miennes, alors c'est un problème minable, Si vous utilisez Eclipse, faites:
Tu devrais être bon.
Je ne connais pas les commandes mvn équivalentes, si quelqu'un pouvait les poster, elles pourraient être utiles.
J'avais le même problème (même si le projet compilait/fonctionnait bien sous Eclipse), ce n'était pas le cas lorsque vous utilisiez la ligne de commande build . La raison était que je n'utilisais pas la structure de dossier correcte pour mvn: "src/main/Java/com "etc. Il regarde ces dossiers par défaut (j’utilisais"/scr/main/com "etc. ce qui posait problème).