maven-nar 플러그인을 사용하여 빌드하고 패키지화 된 네이티브 공유 라이브러리가 있습니다. 이것은 훌륭하게 작동하며 Linux/MacOSX/Windows에서 빌드됩니다. 또한 공유 라이브러리를 감싸는 maven-nar를 사용하여 빌드 된 JNI 라이브러리를 정의했습니다. 이 두 가지 모두 NAR 아티팩트로 생성되며 사용하려면 maven-nar 플러그인이 필요합니다.웹 응용 프로그램에서 네이티브 Maven 아티팩트 (nar) 사용
NAR 패키지가 아닌 프로젝트에서 이러한 NAR에 대한 종속성을 선언 할 때 문제가 발생합니다. maven-nar 플러그인은 절대로 호출되지 않습니다. 프로젝트의 패키징을 NAR로 변경했을 때만 maven-nar 플러그인이 시작됩니다. 이는 NAR 패키지가 감염되기 위해 감염 될 필요가있는 것처럼 보이게합니다. NAR 종속성이있는 경우 모든 업스트림 프로젝트는 NAR 패키지되어야합니다. 이게 맞습니까? 아니면 제가 빠진 것이 있습니까?
maven-nar 플러그인을 사용하여 생성 된 네이티브 공유 라이브러리 및 JNI 아티팩트가 웹 애플리케이션, 즉 WAR에서 성공적으로 사용될 수 있습니까? WAR에서 사용하고 배포 할 수 있다면 어떻게해야합니까? 그렇지 않으면, 응용 프로그램 서버의 java.library.path에있는 네이티브 라이브러리를 수동으로 배치하는 유일한 방법입니까? 적어도
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>thegroup</groupId>
<artifactId>theparent</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>thedependant</artifactId>
<packaging>jar</packaging>
<name>A nice name</name>
...
<properties>
<skipTests>true</skipTests>
</properties>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-nar-plugin</artifactId>
<version>2.1-SNAPSHOT</version>
</plugin>
</plugins>
</build>
...
<dependencies>
<dependency>
<groupId>thegoup</groupId>
<artifactId>theJNI</artifactId>
<version>1.0-SNAPSHOT</version>
<type>nar</type>
</dependency>
</dependencies>
...
</project>
관련 pom 코드를 게시 할 수 있습니까? 네이티브 라이브러리를'war' 타입 프로젝트의 종속물로 선언하는 것이 가능해야합니다. – Raghuram