如何使用 maven pom.xml 为 sikulix api 创建带有本机库的多平台可执行 jar?

How to create multiplatform executable jar with native libraries for sikulix api using maven pom.xml?

我在创建依赖于 sikulixapi 的可执行单个 jar 时遇到问题。

相关部分来自pom.xml

<dependencies>
    <dependency>
            <groupId>com.sikulix</groupId>
            <artifactId>sikulixapi</artifactId>
            <version>1.1.0</version>
    </dependency>
</dependencies>

我正在使用 maven-assembly-plugin。

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <descriptorRefs>
           <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <archive>
            <manifest>                                          
                <mainClass>com.myProject.myClass</mainClass>
            </manifest>
        </archive>
    </configuration>
    <executions>
        <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>                    
    </executions>                                                
</plugin>

我能够在 windows 上生成工作 jarjarjar 根目录中包含 sikulixlibs 目录,在 windows 平台上一切正常。

但我想制作 jar 工作的多平台。在 windows 上创建的 jar 仅包含 sikulixlibs 中的 windows 子目录,因此在调用 linux 时缺少本机二进制代码。

[error] RunTimeINIT:  *** terminating: libs to export not found on above classpath: /sikulixlibs/linux/libs64

如何将所有 linux/windows/OSX 本机库包含到生成的 jar 中?

我编辑了 pom.xml 的依赖项部分,添加了额外的 Maven 工件,每个受支持的工件一个 OS,并使 Maven 生成包含所有本机库的 jar。

<dependencies>
    <dependency>
        <groupId>com.sikulix</groupId>
        <artifactId>sikulixapi</artifactId>
        <version>1.1.0</version>
    </dependency>
    <dependency>
        <groupId>com.sikulix</groupId>
        <artifactId>sikulixlibslux</artifactId>
        <version>1.1.0</version>
    </dependency>
    <dependency>
        <groupId>com.sikulix</groupId>
        <artifactId>sikulixlibsmac</artifactId>
        <version>1.1.0</version>
    </dependency>
    <dependency>
        <groupId>com.sikulix</groupId>
        <artifactId>sikulixlibswin</artifactId>
        <version>1.1.0</version>
    </dependency>
</dependencies>