2016-08-30 4 views
1

Я хочу включить LWJGL через Maven в свой проект. Я получаю файлы .jar, но туземцы не находятся в пути к классам.Maven добавить туземцев в путь библиотеки

С помощью google я узнал, что должен использовать mavennatives, чтобы автоматически извлекать и копировать туземцев. Однако mavennatives найдет только туземцев, которые начинаются с native-, а у всех LWJGL-туземцев есть имена, такие как {artifactId}-{version}-natives-{os}.jar.

Вопрос: Как я могу заставить Maven импортировать зависимости с именами и извлекать этих туземцев?

Мои pom.xml:

<project ... > 
    ... 
    <build> 
     <plugins> 
      ... 
      <plugin> 
       <groupId>com.googlecode.mavennatives</groupId> 
       <artifactId>maven-nativedependencies-plugin</artifactId> 
       <version>0.0.7</version> 
       <executions> 
        <execution> 
         <id>unpacknatives</id> 
         <goals> 
          <goal>copy</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 

    <dependencies> 
     ... 
     <dependency> 
      <groupId>org.lwjgl</groupId> 
      <artifactId>lwjgl</artifactId> 
      <version>3.0.0a</version> 
     </dependency> 
     <dependency> 
      <groupId>org.lwjgl</groupId> 
      <artifactId>lwjgl-platform</artifactId> 
      <version>3.0.0a</version> 
      <classifier>natives-linux</classifier> 
     </dependency> 
     <dependency> 
      <groupId>org.lwjgl</groupId> 
      <artifactId>lwjgl-platform</artifactId> 
      <version>3.0.0a</version> 
      <classifier>natives-windows</classifier> 
     </dependency> 
    </dependencies> 
</project> 

ответ

0

Из official documentation плагина:

Этот плагин распаковывает каждую зависимость с классификатором, начиная с natives-.

Это именно ваш случай использования, документация указывает на classifier элемент, который в вашем случае является natives-linux или natives-windows.

Accordingo документации, тезисы дела будет обработаны:

Это значение по умолчанию, при включении separateDirs плагин будет распаковать каждую нативную зависимость в подкаталог от nativesTargetDir имени, как его классификатор (например, : natives-windows пойдет target/natives/windows)

Действительно баночка всей библиотеки находится в виде {artifactId}-{version}-natives-{os}.jar но в Maven классификатор точно струна между {version} и расширением файла: в этом случае natives-{os}, который начинается с natives и как таковой обрабатывается библиотекой.

+0

хорошо, это означает, что он должен работать так, как я его настраивал? Но почему тогда это не работает? – danielspaniol

+0

Как вы призываете maven? Вы видите, что плагин выполнен как часть вашей сборки? –

+0

Я использую его в intellij. Но когда я просто запускаю Maven-Build, плагин не выполняется ... Выполнение только одного плагина помогло – danielspaniol