java - tutorial - Maven compilar: el paquete no existe
maven tutorial español (3)
No estoy seguro de si hubo daños en el archivo o qué, pero después de confirmar la configuración correcta de pom, pude resolver este problema eliminando el archivo jar de mi repositorio m2 local, lo que obligó a Maven a descargarlo nuevamente cuando ejecuté las pruebas.
Tengo un problema de maven (aparentemente) simple que no puedo resolver. En mi POM he especificado una dependencia para openrdf-sesame como esta:
<dependency>
<groupId>org.openrdf.sesame</groupId>
<artifactId>sesame-runtime</artifactId>
<version>2.7.2</version>
</dependency>
Ejecutar el proyecto desde eclipse funciona bien, incluso puedo exportar un archivo jar ejecutable. Desafortunadamente, no puedo hacer que funcione correctamente a través de cmd-line maven. Para construir un tarro, he agregado lo siguiente a mi pom:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>foo.bar.Cli</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
La compilación falla con los siguientes errores:
.../PLDReducer.java:[25,29] package org.openrdf.rio.rdfxml does not exist
.../PLDReducer.java:[27,33] package org.openrdf.sail.nativerdf does not exist
.../LowPLDReducer.java:[25,29] package org.openrdf.rio.rdfxml does not exist
.../Cli.java:[23,33] package org.openrdf.sail.nativerdf does not exist
.../SchemaBuilder.java:[30,33] package org.openrdf.sail.nativerdf does not exist
.../RepoQuerier.java:[23,33] package org.openrdf.sail.nativerdf does not exist
.../PLDReducer.java:[78,44] cannot find symbol
Extrañamente, tan pronto como agrego el complemento de compilación al pom y actualizo la configuración del proyecto, eclipse parece que ya no se compila. He revisado mi repositorio, y todos los archivos de sésamo están ahí.
mvn --version da esta salida:
Apache Maven 2.2.1 (rdebian-8)
Java version: 1.6.0_27
Java home: /usr/lib/jvm/java-6-openjdk-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux" version: "3.8.0-25-generic" arch: "amd64" Family: "unix"
Veo que parece apuntar a un jre, pero mi búsqueda en Google indicó que vería otro error si no se encuentra el compilador. He pegado el POM completo aquí , si es de alguna ayuda.
¿Hay algo que me falta? No puedo encontrar ningún error en mi POM.
No incluye una etiqueta <scope>
en su dependencia. Si lo añades, tu dependencia se convierte en algo así como:
<dependency>
<groupId>org.openrdf.sesame</groupId>
<artifactId>sesame-runtime</artifactId>
<version>2.7.2</version>
<scope> ... </scope>
</dependency>
La etiqueta de "alcance" le indica a Maven en qué etapa de la compilación se necesita su dependencia. Los ejemplos de los valores que se deben incluir son "prueba", "proporcionado" o "tiempo de ejecución" (omita las comillas en su pom). No conozco tu dependencia, por lo que no puedo decirte qué valor elegir. Consulte la documentación de Maven y la documentación de su dependencia.
Tienes que agregar la siguiente dependencia a tu compilación:
<dependency>
<groupId>org.openrdf.sesame</groupId>
<artifactId>sesame-rio-api</artifactId>
<version>2.7.2</version>
</dependency>
Además, sugeriría echar un vistazo profundo a la documentación sobre cómo usar la biblioteca.