2011-07-01 14 views
5

estoy recibiendo un error de la siguiente manera:error en pom.xml

a la Dependencia Dependencia {groupId = WebLogic, artifactId = webservices, versión = 9,2, type = tarro}: sistema- con ámbito de dependencia debe especificar una ruta absoluta sistema ruta

No está seguro de lo que está mal. Tengo la variable de entorno configurada que estoy usando en pom.xml

Respuesta

11

Al usar el alcance system debe proporcionar una ruta de acceso absoluta a la dependencia (a diferencia de otras dependencias, que se buscan en los repositorios de Maven). Ver System Dependencies en Introducción al Mecanismo de Dependencia.

Ejemplo:

<dependency> 
    <groupId>javax.sql</groupId> 
    <artifactId>jdbc-stdext</artifactId> 
    <version>2.0</version> 
    <scope>system</scope> 
    <systemPath>${java.home}/lib/rt.jar</systemPath> 
</dependency> 

¿Por qué no acaba de instalar el artefacto de terceros en su repositorio local/empresa?

EDITAR: Si tiene systemPath definido, pero sospecha que la variable de entorno no se resuelve, obtendrá el siguiente error (obsérvese la presencia de variable en la ruta):

The project ... has 1 error 
'dependencies.dependency.systemPath' for weblogic:webservices:jar must specify an absolute path but is ${env.BEA_HOME}/lib/xyz.jar @ line ... 

Pero si Maven descubre la variable y la resuelve correctamente, el mensaje de error citado anteriormente contendrá un directorio ya resuelto (no un marcador de posición). Probado en Ubuntu/Maven 3.

+0

Gracias por la respuesta rápida, tengo una ruta del sistema configurada similar a la anterior. Pero el problema que pienso ahora es que de alguna manera el ambiente es vable y no se resuelve. Lo tengo así: $ {env.BEA_HOME} /lib/xyz.jar y tengo BEA_HOME configurado como una variable de entorno. Pero aún recibo un error. Estoy trabajando en una caja de Windows 7 si eso ayuda. – sab

+0

Ver mi edición, tal vez te ayude. –

+3

Esto está muy bien, excepto cuando desea usar algo como tools.jar, que está bajo el directorio JDK/lib, y no JDK/jre/lib.Por lo tanto, por un lado, la documentación de Maven dice que "$ {java.home} especifica la ruta al uso actual del entorno JRE_HOME con rutas relativas para obtener, por ejemplo: $ {java.home} ../ bin/java.exe "y, por otro, se queja cuando lo hace por la ruta del sistema. Seguramente sería mejor para la propiedad java.home ser equivalente a la variable de entorno y luego llamar a la ruta al subdirectorio JRE algo así como $ {jre.home}? – RCross

1

¿Puedes publicar tu elemento 'Dependency' del pom?

conjeturar que es de 'sistema' alcance y que hay un camino de allí, y que el camino es un pariente camino (por ejemplo '../../someJar.jar') en lugar de una ruta absoluta (por ejemplo, /opt/someDir/someJar.jar).

Maven necesita una ruta absoluta.

Como nota al margen, es posible que desee buscar en la creación de un repositorio compartido local para tarros compartidos no públicos y alejarse del alcance del 'sistema'. El alcance del sistema puede morderlo en la parte trasera cuando la construcción se realiza en otros entornos.

0

Me encontré con un problema similar al tratar de construir el artefacto arquillian-was-embedded-8. Estoy usando Win 7 de 64 bits también. Usando Git, cloné el proyecto Arquillian Embedded WAS dentro de NetBeans y tuve el mismo error. Cambié la variable de entorno del sistema operativo cuando tenía NetBeans abierto. Por lo general, debe cerrar todas las ventanas del Explorador de Windows y las ventanas del Símbolo del sistema para que la variable de entorno surta efecto. Me arriesgué y también cerré NetBeans. Al abrir NetBeans nuevamente, el proyecto resolvió la variable $ {env.WAS8_HOME}. Extraño ... pero lo que sea.

Cuestiones relacionadas