[英]How to create multiplatform executable jar with native libraries for sikulix api using maven pom.xml?
I have problem creating executable single jar dependent on sikulixapi. 我在创建依赖sikulixapi的可执行单个jar时遇到问题。
Relevant parts from pom.xml pom.xml的相关部分
<dependencies>
<dependency>
<groupId>com.sikulix</groupId>
<artifactId>sikulixapi</artifactId>
<version>1.1.0</version>
</dependency>
</dependencies>
I am using maven-assembly-plugin. 我正在使用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>
I am able to produce working jar on windows. 我能够在Windows上生产工作罐 。 jar contains sikulixlibs directory in jar root and everything works OK on windows platform.
jar在jar根目录中包含sikulixlibs目录,并且在Windows平台上一切正常。
But I would like to produce jar working multiplatform. 但是我想生产可以在多平台上运行的jar 。 jar created on windows contains only windows subdirectory in sikulixlibs and due to this fact there are missing native binary code when calling in linux.
在Windows上创建的jar仅包含sikulixlibs中的Windows子目录,由于这个事实,在Linux中调用时缺少本机二进制代码。
[error] RunTimeINIT: *** terminating: libs to export not found on above classpath: /sikulixlibs/linux/libs64
How to include all linux/windows/OSX native libraries into produced jar ? 如何将所有linux / windows / OSX本机库包含到生产的jar中 ?
I have edited dependecies part od pom.xml, add additional maven artifacts, one for every supported OS, and make maven producing jar including all native libraries. 我已经编辑了pom.xml的dependecies部分,添加了其他Maven工件,每个受支持的OS都添加了一个Maven工件,并使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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.