我的用户一直在呼吁使用我的库轻松分发本机二进制文件。我通过在extracted at runtime into a temporary directory的jar中分发本机来完成这项工作。
但是,maven-native-plugin
要求将本机打包为jnilib
(OS X),so
(Linux)或dll
(Windows)。我有my own deploy target打包了一个jar
文件,并将其分发到分类器natives
下。需要一个特殊的分类器有点令人讨厌。
如何禁用jnilib/so/dll
的部署?
如何在没有任何特殊分类器的情况下分发我的jar
?
最佳答案
我做类似的事情,但是我将本地库打包在zip文件中。之后,在需要它们的工件中,我使用pull and unpack maven dependency plugin压缩文件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unzip</id>
<phase>prepare-package</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>foo</groupId>
<artifactId>bar</artifactId>
<version>1.0.0</version>
<type>zip</type>
<overWrite>true</overWrite>
<includes>**/*.dll</includes>
<outputDirectory>${project.build.directory}/natives</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
如您所见,我不使用任何分类器。
关于java - 禁用jnilib的部署,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18136693/