我想通过Maven将LWJGL包含在我的项目中。我得到了.jar
文件,但本机不在类路径中。
在google的帮助下,我发现我应该使用mavennatives
来自动提取和复制本机。但是,mavennatives
仅会找到以native-
开头的本机,而LWJGL-native都具有类似{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>
最佳答案
从插件的official documentation中:
该插件使用以natives-
开头的分类器解压缩每个依赖项。
这就是您的用例,文档指向classifier元素,在您的情况下为natives-linux
或natives-windows
。
根据文档,将处理以下情况:
这是默认值,当启用eparateDirs时,插件会将每个本机依赖项解压缩到名为nativesTargetDir的子目录,该子目录的名称类似于其分类器(例如:natives-windows
将转到target/natives/windows
确实,整个库的jar都是{artifactId}-{version}-natives-{os}.jar
的形式,但是在Maven中,分类器正是{version}
和文件扩展名之间的字符串:在这种情况下,natives-{os}
由natives
开头,因此由图书馆处理。
关于java - Maven将本地人添加到库路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39233158/