0

我正在使用 nar-maven-plugin 3.0.0 我的 pom 类似于以下内容:

<packaging>nar</packaging>

<build>
    <plugins>
        <plugin>
            <groupId>com.github.maven-nar</groupId>
            <artifactId>nar-maven-plugin</artifactId>
            <version>3.0.0</version>
            <extensions>true</extensions>
            <configuration>
                <libraries>
                    <library>
                        <type>jni</type>
                    </library>
                </libraries>
            </configuration>
        </plugin>
    </plugins>
</build>

它确实有效。在我的 Linux 下,它会自动找到 gcc 并使用它来构建所有内容并将其打包到 nar 中。但是,这是 .so 文件。

我的问题是:是否可以以某种方式将其配置为在 Linux nar 下使用 .dll 在 nar 和 .so 旁边创建?并且通常生产 JNI nars,不同的架构?

如果可能,请提供一些配置片段、链接或任何可以给我一些线索的东西。

4

2 回答 2

2
  1. 将 Windows JDK 复制到 linux 上。否则,您将不需要 headers 和 implibs。如果你看,你会看到有两个 JNI 头文件;一个是每个平台。而且,当然,您需要一个 implib 来链接您的 DLL,以便它可以连接到 JVM。
  2. 获取https://fedoraproject.org/wiki/MinGW?rd=SIGs/MinGW,一个交叉编译器环境。
  3. 教 NAR 插件关于 (2)。这可能需要阅读 NAR 插件的源代码。
  4. 哀悼您仍然需要一个 Windows 盒子来测试结果

所以你确定要这样做吗?我非常怀疑你会发现这是一种常见的、受支持的做法,因为我们大多数人都想测试我们构建的东西。由于您需要实际的 Windows 进行测试,您不妨在那里构建。

于 2014-09-02T08:22:38.503 回答
0

是的,但它需要为您希望跟踪的每个平台使用交叉编译器。您的 Jar 的构建过程也需要能够识别交叉编译器。

于 2014-09-02T04:12:46.507 回答