0

我的用户一直在呼吁使用我的库轻松分发本机二进制文件。我通过在 jars 中分发 native 来完成这项工作,这些 jar在运行时被提取到一个临时目录中。

但是,maven-native-plugin需要将本机打包为jnilib(OS X)、so(Linux) 或dll(Windows)。我有自己的部署目标,它打包一个jar文件并在分类器下分发它natives。这需要一个特殊的分类器,这有点烦人。

  1. 如何禁用部署jnilib/so/dll
  2. jar如何在没有任何特殊分类器的情况下分发我的?
4

1 回答 1

1

我做了类似的事情,但我将本机库打包在 zip 文件中。之后,在需要它们的工件中,我使用maven 依赖插件提取并解压缩zip 文件:

<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>

如您所见,我不使用任何分类器。

于 2013-08-08T22:15:52.393 回答