我的用户一直在呼吁使用我的库轻松分发本机二进制文件。我通过在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/

10-09 09:26