mkyong maven-2

maven 2 - mkyong - fallo de compilación maven



mkyong maven (16)

Tengo un problema extraño: no se pudo leer algún archivo de clase durante la compilación maven.

  1. Tengo un proyecto A y un proyecto B
  2. El proyecto B depende del proyecto A archivo JAR objetivo.

Durante la compilación del proyecto B , no puede leer lib en el archivo A JAR del proyecto, aunque la parte que se le dirige es perfecta.

También he comprobado y verificado el guión de Maven y es perfecto.

Error:

[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] ------------------------------------------------------------------------


Dentro de las clases tuyas en las que está la queja, maven es una dependencia que pertenece a algunos mvn clean install -DskipTests=true reconstruyen con el comando maven. Utilizo este comando mvn clean install -DskipTests=true debería funcionar en este caso cuando algunos símbolos de clases Está perdido


Después de ejecutar el siguiente comando: - mvn clean package install

Encontré el problema:
''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

Una de las dependencias fue marcada como ''importar''. Cambiar el ''alcance'' solucionó el problema para mí.


El error es bastante claro: "no se puede encontrar el símbolo". Algunas dependencias no se pueden resolver (incluso tiene la línea y la columna en el rastreo de la referencia que no se puede resolver):

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

A continuación un par de cosas para verificar:

  • Compruebe o vuelva a verificar que estas clases están en el frasco A (la misma versión que en el pom)
  • Verifique o vuelva a verificar la declaración de importación en las fuentes B (debe coincidir con el paquete de clases en A)
  • Verifique o vuelva a verificar el pom.xml de B y especialmente la declaración de la dependencia en A (su versión)
  • Compruebe que la dependencia de A no esté excluida de forma transitiva en algún lugar del pom de B
  • ¿Es A una dependencia SNAPSHOT? Si no, elimine A de su repositorio local y reconstruya

Maven está trabajando bien, tienes un error en alguna parte.


Es fácil obtener este error en un proyecto de múltiples módulos. Si, por ejemplo, realizó cambios en los módulos A, B y C, pero luego intenta compilar solo el módulo B, es susceptible a este error. Supongamos que el módulo B depende del módulo A. Dado que solo se compiló el módulo B, los archivos de clase del módulo A ahora están desactualizados y es posible que no sean válidos.

La compilación de todos los módulos (o módulos en el orden de dependencia jerárquico adecuado) resuelve este error, si esta es la naturaleza de su problema.


Mi conjetura es una versión incorrecta del proyecto Un frasco en su repositorio local de maven. Parece que la dependencia se resuelve; de ​​lo contrario, creo que Maven no comienza a compilar, pero generalmente este error de compilación significa que tiene una combinación de versiones. intente hacer una maven clean install de su proyecto A y ver si cambia algo para el proyecto B ... También podría ser útil un poco más de información sobre su configuración:

  • ¿Cómo se lanza el maven? que comando en una shell, un IDE (con o sin plugin), en un servidor CI?
  • ¿Qué comando de maven estás usando?


Puede intentar ejecutar el comando "mvn site" y ver qué dependencias transitivas tiene, y luego resolver los posibles conflictos (omitiendo una dependencia implícita en algún lugar). Solo una conjetura (es un poco difícil saber cuál podría ser el problema sin ver la información de su pom) ...


Si sus dependencias están bien (verifique con mvn dependency: list) como las mías, entonces es un problema técnico, si está utilizando Eclipse:

  1. Haga clic derecho en el proyecto> Maven> Actualizar proyecto ...
  2. Comprueba todo pero sin conexión
  3. DE ACUERDO

Debes ser bueno.

No conozco los comandos mvn equivalentes, si alguien pudiera publicarlos podría ser útil.


También importa el orden de las dependencias. He tenido el mismo problema. Y básicamente tuve que poner primero la scope test y luego las dependencias de scope compile en el pom.xml . Si pongo primero la scope compile y luego la scope test fallará.


Tengo un error como este, pero después

1 /

mvn eclipse:clean mvn eclipse:eclipse -Dwtpversion=2.0

2 / ejecutar eclipse, y abrir el proyecto

3 /

mvn package

es trabajo


Tratar de usar:

mvn clean package install

Este comando debería instalar tus artefactos en tu repositorio local de Maven.

PD: Veo que esta es una pregunta antigua, pero puede ser útil para alguien en el futuro.


Tuve el mismo problema (a pesar de que el proyecto estaba compilando / funcionando bien en Eclipse), no fue cuando se usó la construcción de la línea de comandos. La razón fue que no estaba usando la estructura de carpetas correcta para mvn: "src / main / java / com" etc. Está viendo estas carpetas de forma predeterminada (estaba usando "/ scr / main / com" etc., que problemas causados).


Tuve el mismo problema y así es como te sugiero que lo arregles:

Correr:

mvn dependency:list

y lea atentamente si hay algún mensaje de advertencia que indique que para algunas dependencias no habrá dependencias transitivas disponibles.

Si es así, vuelva a ejecutarlo con el indicador -X:

mvn dependency:list -X

para ver información detallada sobre qué se quejan los expertos (puede haber mucha salida para el indicador -X)

En mi caso, hubo un problema en el módulo maven dependiente pom.xml - con dependencia gestionada. Aunque había una versión para la dependencia administrada definida en pom principal, Maven no pudo resolverla y se quejaba de que faltaba una versión en el pom.xml dependiente

Así que acabo de configurar la versión faltante y el problema desapareció.


Tuve un problema similar y nunca encontré nada en la web después de una búsqueda excesiva.

pom.xml archivo pom.xml y en las dependencias cambié el alcance de <dependency> it: <scope>test</scope> a <scope>compile</scope> .

Anteriormente lo estaba usando solo para pruebas, pero cambio la estructura del proyecto y nunca supe que tenía que cambiar esto.

prueba: este alcance indica que la dependencia no es necesaria para el uso normal de la aplicación y solo está disponible para las fases de compilación y ejecución de la prueba.

compilar: este es el alcance predeterminado, utilizado si no se especifica ninguno. Las dependencias de compilación están disponibles en todos los classpaths de un proyecto. Además, esas dependencias se propagan a proyectos dependientes.

Aquí hay una referencia de Apache Maven Docs: https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope


Yo tuve el mismo problema...

Cómo solucionarlo: agregue las siguientes propiedades al pom.xml

<properties> <!-- compiler settings --> <maven.compiler.source>1.6</maven.compiler.source> <maven.compiler.target>1.6</maven.compiler.target> </properties>


diríjase al repositorio de Maven y abra la jarra [consejo: puede usar winzip] del módulo fuente para verificar la clase específica presente.

En mi caso no lo es. Luego lo encontré abajo.

si está utilizando el complemento org.apache.felix / maven-bundle-plugin

Asegúrese de que el módulo fuente tenga el paquete de exportación definido

Ejemplo: com.xxx.camel.dao