Error de compilación de Maven: no se puede encontrar el símbolo

BojanSM

Realmente no sabía qué poner de manera diferente como título de una pregunta ...

Tengo 3 módulos de maven. El primero es el módulo principal y simplemente envuelve los módulos secundarios. Nada sofisticado. En el segundo módulo tengo una clase de prueba que es abstracta y tiene dos métodos.

En el tercer módulo tengo una clase de prueba que hereda la clase abstracta del segundo módulo.

Cuando intento construir esto con maven, aparece un error de compilación que dice que no puede encontrar un símbolo que sea esa clase abstracta del segundo módulo. Lo que es interesante es que no obtengo ningún error de compilación en eclipse.

Este es un pedazo de pom del tercer módulo:

<dependency>
  <groupId>${project.groupId}</groupId>
  <artifactId>SecondModule</artifactId>
  <version>${project.version}</version>
</dependency>



</dependencies>
  <build>
    <defaultGoal>install</defaultGoal>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
      </plugin>

      <!-- to generate the MANIFEST-FILE of the bundle -->
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
          <instructions>
            <Import-Package>*</Import-Package>
            <Export-Package></Export-Package>
            <Embed-Dependency>SecondModule</Embed-Dependency>
          </instructions>
        </configuration>
      </plugin>

    </plugins>

Este es el error que obtengo:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile (default-testCompile) on project ThirdModule: Compilation failure: Compilation failure:
[ERROR] D:/workspace/project/ThirdModule/src/test/java/org/rrrrrrr/ssssss/thirdmodule/ConcreteTest.java:[7,56] cannot find symbol
[ERROR] symbol:   class AbstractTest
[ERROR] location: package org.rrrrrrr.ssssss.secondmodule

¿Qué me estoy perdiendo?

Joydip Datta

Las clases de prueba (clases dentro de src / test) no se agregan a la ruta de clases automáticamente cuando agrega una dependencia. Solo se incluyen las clases que están en src / main.

Para agregar dependencia en las clases de prueba, también debe especificarlo explícitamente especificando el tipo como test-jar en la sección de dependencia. Esta debería ser la dependencia definida en el pom.xml del módulo 3.

<dependency>
  <groupId>${project.groupId}</groupId>
  <artifactId>SecondModule</artifactId>
  <version>${project.version}</version>
  <type>test-jar</type> <!-- add dependency to test jar -->
</dependency>

También es una buena idea asegurarse de que el SecondModule genere test-jar. De lo contrario, cualquiera que necesite compilar ThirdModule necesitaría compilar SecondModule también. Por defecto, maven no empaqueta las clases de prueba en un contenedor. Para decirle a maven que haga esto, agregue los objetivos: jar y test-jar a las ejecuciones de maven-jar-plugin. De esta forma se generarían tanto el tarro original como el de prueba.

Aquí está el esquema pom.xml para el segundo módulo que ilustra esto.

<project>
  <build>
    <plugins>
     <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-jar-plugin</artifactId>
       <executions>
         <execution>
           <goals>
             <goal>jar</goal>
             <goal>test-jar</goal>
           </goals>
         </execution>
       </executions>
     </plugin>
    </plugins>
  </build>
</project>

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Error de compilación del proyecto Maven: no se puede encontrar el símbolo (que es java.lang.String)

Error de compilación de Java: no se puede encontrar el símbolo

Error de compilación de Java: no se puede encontrar el símbolo

Error de instalación de Maven no se puede encontrar el símbolo addServlet

error de compilación: no se puede encontrar el símbolo: In, StdIn y StdOut

Error de compilación: no se puede encontrar el símbolo FragmentBindingImpl con atributos personalizados

Error de compilación: no se puede encontrar el símbolo AudioEffect :: setParameter en Android Studio

Error de compilación de Maven y Protobuf: no se puede encontrar el símbolo en el paquete com.google.protobuf

La compilación de Maven falla con "no se puede encontrar el símbolo" mientras que con Eclipse, se compila

Error de prueba de Maven: no se puede encontrar el símbolo

Error de Javac: "error: no se puede encontrar el símbolo"

Java, ¿no se puede encontrar el error de símbolo?

la compilación de Java con frascos externos: no se puede encontrar el símbolo

Kotlin no puede encontrar el símbolo Función 1 error de compilación

"No se puede encontrar el símbolo de error" cuando se ejecuta un archivo que contiene otra clase de Java, incluso después de una compilación exitosa

(Orden de inserción) Error de Java: no se puede encontrar el símbolo

Error durante el proceso de compilación: "error: no se puede encontrar el método de símbolo createSingle (<anonymous Callable <Scenario>>)"

Javadoc "no se puede encontrar el símbolo" error al utilizar la anotación @Builder de Lombok

[ERROR]: no se puede encontrar el registro de variable de símbolo al construir con maven y lombok

Error de compilación: no se puede encontrar el nombre 'Mapa' y más - Angular 2

Error repentino de compilación en Android Studio; error: no se puede encontrar la clase de símbolo ComputableLiveData

Error de resolución: (102, 82) error: no se puede encontrar el error ListCallbackSingleChoice de la clase de símbolo

La compilación de Maven no puede encontrar el símbolo al acceder a los métodos anotados del proyecto lombok,

No se puede corregir el error: no se puede encontrar la clase de símbolo ActivityMainBindingImpl

Java - javax.json - Error de compilación: "no se puede encontrar el símbolo" para .getValueType () - Parece que no puedo entender por qué

error: no se puede encontrar el símbolo de importación androidx.core.widget.SwipeRefreshLayout; después de migrar a androidx

error de maven: no se puede encontrar la clase de símbolo en un paquete

El error de compilación no puede encontrar el símbolo new Dashboard (); ^ símbolo: clase Ubicación del tablero: clase Principal 1

Error de retorno del compilador de Java: no se puede encontrar el símbolo aunque el símbolo está definido