2011-01-10 12 views
12

Tengo un proyecto donde necesito el JNLP API. No encontré un artefacto para eso en Maven Central, así que agregué un Repositorio externo que ofrece eso a mi pom. Ese repositorio se desconectó este fin de semana. Esta es la segunda vez que algo así me sucede a mí.Cómo agrupar API JNLP con Maven Project

Sé que esto es más o menos lo Maven es no acerca, pero en realidad sólo quiero ese pequeño archivo jnlp-api-1.5.0.jar sea

  1. En mi SMC (I don' quiero rodar mi propio repositorio Maven para una sola dependencia).
  2. En el ámbito de compilación cuando se crea el proyecto.

¿Qué perillas tengo que activar para lograr esto?

Respuesta

15

A partir de JDK 7.0, la API JNLP está siendo proporcionada por el archivo javaws.jar en el directorio lib de su JRE, es decir, ${java.home}/lib/javaws.jar. Es posible usar el alcance de dependencia de maven system.

<project> 
    ... 
    <dependencies> 
    <dependency> 
     <groupId>javax.jnlp</groupId> 
     <artifactId>jnlp-api</artifactId> 
     <version>7.0</version> 
     <scope>system</scope> 
     <systemPath>${java.home}/lib/javaws.jar</systemPath> 
    </dependency> 
    </dependencies> 
    ... 
</project> 
+1

Ahora tienen ' $ {} basedir /src/libs/jnlp-api-1.5.0.jar' y funciona como un encanto. Incluso a Hudson le gusta. ¡Gracias! – Waldheinz

+0

En mac JDK 1.6 envía las clases jnlp en $ {java.home} /lib/javaws.jar. – Kane

+0

Esto solo parece funcionar con Oracle JDK. Usar una ruta local como las menciones de Waldheinz podría funcionar para un proyecto, pero si eso es una dependencia de otro, la ruta puede que ya no sea válida. – javydreamercsw

4

Puede colocar el JAR en su repositorio local utilizando el objetivo install-file del maven-install-plugin y hacer referencia a él como lo haría normalmente en su POM. El comando sería:

mvn install:install-file -Dfile=/path/to/jnlp-api-1.5.0.jar -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=1.5.0 -Dpackaging=<packaging> 

lugar este comando en una secuencia de comandos y comprobar que en su SMC. De esa forma, usted (y cualquier otra persona que trabaje en este proyecto) puede instalarlo fácilmente en el repositorio local.

Cuestiones relacionadas