Pregunta

No es un muy buen título, voy a tratar de explicar.

Esto ha trabajado durante meses, entonces hoy por alguna razón desconocida, eclipse no puede resolver cualquiera de las importaciones de los hermanos (proyectos de pares), cuando nada ha cambiado (de verdad!). Sin Eclipse o Eclipse plug-in cambios, no hay cambios en el código fuente, no hay cambios de configuración.

Tengo una estructura de proyecto bastante estándar:

parent_project
-- clild_project_a
---- pom.xml
-- clild_project_b
---- pom.xml
-- child_project_c
---- pom.xml
-- pom.xml (for parent).

Ahora ambos proyecto a y b son dependientes del código de c.

proyectar una pom.xml.

  <parent>
    <artifactId>parent_project</artifactId>
    <groupId>com.mydomain.ge</groupId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  ...
  <dependencies>  
    <dependency>
        <groupId>com.mydomain.ge</groupId>
        <artifactId>child_project_c</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
  </dependencies>

y en el pom.xml padres:

  <modules>
    <module>child_project_a</module>
    <module>child_project_b</module>
    <module>child_project_c</module>
  </modules>

Así que ahora en Eclipse, todas las declaraciones de importación en el proyecto dicen que un proyecto que importan de c:

package com.skillkash.ge.api;
import com.skillkash.ge.dao.AlreadyExistsException;

Esto da:

The import com.skillkash.ge.dao.AlreadyExistsException cannot be resolved.

Me trató la siguientes aparatos:

  • hacer una limpieza maven (con click-derecho> Ejecutar como-> experta Clen en todos los niños y los padres.
  • haciendo un maven dependencias de actualización en todos los proyectos
  • hacer un paquete experta en cada proyecto.
  • haciendo m2 experto -.> "Configuraciones de proyecto de actualización" en todos los proyectos
  • Eclipse reiniciar.
  • reiniciar el equipo.

Nota 1 , en Eclipse tengo 4 proyectos separados, uno para cada niño, y uno de los padres. los tres proyectos niño también se comprueban en SVN, pero no puedo checkin fácilmente el proyecto de los padres, ya que tiene las carpetas de proyectos niño por debajo de ella.
NOTA 2 , sé mucho acerca de hormigas, pero soy un novato al experto, pero no he tenido ningún problema con él hasta ahora. p.ej. Ive ni idea de si está diciendo experto Eclipse para utilizar la fuente del proyecto depentant, o si se tiene que compilar frasco constantemente en el repositorio m2 local y los usos de proyectos dependientes que.
Nota 3 , todas las otras dependencias (externos) están bien.
Nota 4 , he comprobado que "dependencias Resolver de proyectos del área de trabajo" está marcada.
Nota 5 , en el ecipse java diálogo ruta de compilación, no parece que los proyectos de pares de los que depende de estar en cualquiera de "fuente", "proyectos" o "bibliotecas" pestañas. Bibliotecas tiene una "depedencies Maven" sub-árbol, pero bajo thare de frascos son sólo externas como log4j.

¿Fue útil?

Solución

¿Funciona si lo hace un mvn clean install en el pom padres desde la línea de comandos en lugar de en eclipse? Eso va a descartar dos cosas:

  1. Si es o no es un problema Eclipse
  2. Si o no su problema tiene que ver con que el uso de package en lugar de install

Me di cuenta de que estaba usando el objetivo paquete experto. En general, siempre se debe hacer en lugar de mvm clean install mvn clean package para el trabajo en el equipo local. Si no se utiliza el objetivo de instalar, a continuación, el proyecto C nunca se instala en su repositorio local (por defecto en $ HOME / .m2 / repositorio o el equivalente en Windows) y por lo tanto no podrán ser referenciados por los proyectos de A y B.

De no ser así, ir dentro de su $ HOME / .m2 / repositorio y retención instalada .jar / .pom para el proyecto de la c real. Se ruta del directorio del corresponderá a ella de coordenadas Maven (por ejemplo com / midominio / ge / child_project_c / 0.0.1-snapshot). Asegúrese de que la jarra tiene las clases que se pueden esperar en el interior del mismo y asegúrese de que el pom instalado al lado parece que el que está en el repositorio de origen.

Otros consejos

No se puede hacer un comentario todavía; pero no m2eclipse proyectos determinación del espacio de trabajo en lugar de instalarlos en repositorio local y resolverlas a partir de ahí?

descubrí, que MVN es bastante exigente con lo que está escrito en build.properties! Me enfrentado el mismo problema y tenía que tener cuidado de que

  1. Tanto source.. = src/ y output.. = bin/ se han introducido correctamente.
  2. bin.includes = META-INF,/ y . se han introducido correctamente.

Después de esto me fijo, MVN instalación limpia hizo el trabajo como un encanto! @whaley, gracias por la pista con $HOME/.m2/repository lo que realmente me llevaron a ver los archivos fueron realmente desaparecidas en el frasco, debido a las razones antes mencionadas!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top