2011-01-10 1 views
12

У меня есть проект, где мне нужен JNLP API. Я не нашел для этого артефакта в Maven Central, поэтому добавил внешний репозиторий, который предлагает это моему pom. Этот репозиторий отключился в эти выходные. Это второй раз, когда что-то подобное произошло со мной.Как связать API JNLP с проектом Maven

Я знаю, что это довольно много, что Maven это не об этом, но на самом деле я просто хочу, чтобы крошечная файл JNLP-апи-1.5.0.jar быть

  1. В моей СКМ (я не» я хочу свернуть свой собственный репозиторий Maven только для одной зависимости).
  2. В области компиляции, когда проект строится.

Какие ручки мне нужно сделать, чтобы выполнить это?

ответ

15

С JDK 7.0 API JNLP предоставляется файлом javaws.jar в вашем каталоге lib JRE, то есть ${java.home}/lib/javaws.jar. Можно использовать область зависимости 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

Теперь у меня есть ' $ {BASEDIR} /src/libs/jnlp-api-1.5.0.jar' и он работает как шарм. Даже Хадсону это нравится. Благодаря! – Waldheinz

+0

На mac JDK 1.6 отправляются классы jnlp в $ {java.home} /lib/javaws.jar. – Kane

+0

Это похоже на работу с Oracle JDK. Использование локального пути, такого как упоминания Waldheinz, может работать для одного проекта, но если это зависимость другого, путь может быть недействительным больше. – javydreamercsw

4

Вы можете поместить JAR в свой локальный репозиторий, используя цель плагина maven-install-plugin и ссылаться на него, как обычно в вашем POM. Команда будет:

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> 

Поместите эту команду в скрипт и проверьте ее в своем SCM. Таким образом, вы (и все, кто работает над этим проектом) можете легко установить его на локальное репо.