Maven erreur de compilation: le paquet n'existe pas

J'essaie d'ajouter de maven soutien à un projet d'entreprise existant. C'est un multi-module de projet, et les 2 premiers modules de la compilation et de l'installation sans problèmes, mais je suis confronté à l'Erreur de Compilation j'ai essayer d'utiliser la même dépendance en plus d'un module.
Ma structure est:

> + parent
>    - pom.xml
>    - module-1
>    -   pom.xml
>    - module-2  (Depends on module-1)
>    -   pom.xml
>    - module-3
>    -   pom.xml (Depends on both modules 1 and 2)

Je suis avec le projet ouvert sur Eclipse et il n'indique aucune erreur. Quand je lance mvn clean install de la société mère, il réussi installe le module 1 et 2, mais échoue sur le module 3 en disant que package xxx.yyy does not exist et Cannot find symbol XXXYYY. Le package xxx.yyy et le symbole XXXYYY sont à l'intérieur d'un pot qui figure sur les dépendances de deux modules 2 et 3.

Depuis deux modules depende sur le même pot, j'ai essayé d'ajouter la dépendance uniquement sur le module 2 et je crois que le module 3 devrait être le voir à cause de dépendances transitives, mais il ne pouvait pas voir le paquet. J'ai donc essayé d'ajouter la dépendance à la fois des modules 2 et 3 pdm et le problème a persisté.

J'ai déjà vérifié/essayé ces:

  • La demande de pot est répertorié dans mon avec des dépendances. J'ai exécuté la commande suivante et d'après ce que je peux voir que le nécessaire .fichier jar sur la liste des dépendances: mvn dependency:copy-dependencies
  • Comme je l'ai dit ci-dessus, j'ai essayé de mettre dans mon classpath par le biais de la dépendance transitive et le référencement directement sur mon pompon et les deux solutions ne fonctionnent pas
  • J'ai essayé de supprimer mon ensemble du référentiel et de télécharger à nouveau le tout et aussi n'a pas de travail

La seule particularité de mon projet est que le module 3 repose sur le module 2, qui dépend de la lib que le module 2 dépend aussi.

Ci-dessous je suis coller les pdm de deux modules 2 et 3. J'ai changé certains noms, en raison de la politique de l'entreprise.

Module 2

<project xmlns="http://maven.apache.org/POM/4.0.0" ... >  
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.company</groupId>
    <artifactId>parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>

  <artifactId>Module2</artifactId>    
  <dependencies>

      <dependency>
          <groupId>com.company</groupId>
          <artifactId>Module1</artifactId>
          <version>0.0.1-SNAPSHOT</version>
      </dependency>         

    <dependency>
        <groupId>com.company</groupId>
        <artifactId>SharedArtifact</artifactId>
        <version>1.1</version>
     </dependency>

    ...

Module 3

<project xmlns="http://maven.apache.org/POM/4.0.0" ... >  
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.company</groupId>
    <artifactId>parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>

  <artifactId>Module3</artifactId>    
  <dependencies>

      <dependency>
          <groupId>com.company</groupId>
          <artifactId>Module2</artifactId>
          <version>0.0.1-SNAPSHOT</version>
      </dependency>         

    <!--<dependency>
        <groupId>com.company</groupId>
        <artifactId>SharedArtifact</artifactId>
        <version>1.1</version>
     </dependency>-->

    ...

Et que le package ne peut pas être vu est à l'intérieur de la 'SharedArtifact'. Lorsque je supprime la dépendance de Module2, il n'a pas donne le package does not exist d'erreur à partir de la SharedArtifact' paquet. Mais ensuite, il donne la package does not exist de la Module2 jar.

Il semble que d'une certaine manière les dépendances sont perdus depuis le Module3 dépend à la fois.

Je suis en utilisant Java 1.6.0_29 et Maven 3.0.5. Et je ne peux pas mettre à niveau vers Java 7, parce que le projet a besoin de Java 6. Et ne peut pas mettre de Maven, provoquer mis à jour Maven ne fonctionne qu'avec java 7 et supérieur.

Mise à jour 1:

L'erreur donnée quand je compile est la suivante:

[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] \Users\usuario\Documents\workspaces\myworkspace\qa\Module3\src\com\company\sharedartifact\package\SomeClass.java:[8,55] 
package com.company.sharedartifact.package  does not exist
[ERROR] \Users\usuario\Documents\workspaces\myworkspace\qa\Module3\src\com\company\sharedartifact\package\SomeClass.java:[9,55] 
package com.company.sharedartifact.package does not exist
[ERROR] \Users\usuario\Documents\workspaces\myworkspace\qa\Module3\src\com\company\sharedartifact\package\SomeClass.java:[17,85] 
cannot find symbol
symbol  : class SomeOtherClass

Je n'arrive pas à coller le tout -X log en raison de la politique de l'entreprise, mais si une partie est nécessaire, je peux changer quelques noms.

Mise à jour 2:

Aujourd'hui, je viens de comprendre que si une course mvn clean install, il ne parvient pas à compiler. Mais si je lance mvn clean, puis (dans Eclipse) - je exécuter Maven Update project et puis " mvn install, il compile!

Depuis que j'ai découvert cela, j'ai déjà évoqué cette question et je pense que quelque chose de mal avec mon classpath. Comme je travaille avec un Weblogic Portal application, j'ai besoin de garder certaines Bibliothèques Partagées (ceux qui sont nécessaires à la fois par le projet et de l'exécution) sur Eclipse. Peut-être certains de la bibliothèque est en train d'être oublié sur mon pompon. La chose étrange est que le paquet que la compilation des revendications qui n'existe pas, N'existe pas.

Pourriez-vous imprimer les résultats de débogage (contenant le message d'erreur) avec la X commutateur
Je ne peux pas coller l'intégralité de la sortie en raison de certains noms que la société ne veut pas me permettre de le rendre public. Je suis en train de modifier la question de l'erreur qui est donne. Quand je le lance avec l'option-X, je vois le pot que j'ai besoin dans le classpath, le Java et Maven version sont bien et il va comme prévu depuis l'erreur de compilation
FWIW, il devrait être possible de mettre à jour Java et Maven pour les versions et l'utilisation ancienne de Java pour l'exécution. Vous avez juste besoin de s'assurer que la Java de la source et la cible sont configurés à 1,6 dans votre POMs, Vous pouvez le faire manuellement via la configuration individuelle des plugins (Compilateur, Surefire, etc.) ou en utilisant Toolchains. Si vous êtes préoccupé par les nouvelles nouveautés de Java se faufiler dans, l'utilisation de l'animal-sniffer plugin et/ou maven-enforcer pour briser la construction si de nouvelles classes sont utilisées.
Avez-vous jamais comprendre cela? J'ai un projet similaire avec un projet parent avec deux enfants, Un enfant dépend de l'enfant B, et Un enfant ne peut pas voir l'enfant B classes/packages.
Je ne pouvais pas le comprendre encore. Donc je suis en utilisant le (très mauvais) approche que je l'ai mentionné sur la mise à jour 2. Il compile et des paquets, mais j'ai une dépendance sur Eclipse.

OriginalL'auteur cristianorbs | 2017-04-04