Maven:在nar-plugin中,你能说明获取包含的位置吗?

时间:2013-02-25 15:17:27

标签: maven-2 maven-nar-plugin

我有一个包含多个子模块和子子模块的项目,它们同时包含java和本地语言代码(主要是母语)。要处理此本机代码,我使用maven-nar-plugin。现在,我没有在本地存储库中编译本机代码所需的所有包含。无论如何都要给maven-nar-plugin一个目录并包含其中的所有内容吗?

我在模块的pom中使用了<systemIncludePaths><includePaths>,但它仍然无法编译。

如果有更简单的方法,而不是我要去的方向,请解释。

1 个答案:

答案 0 :(得分:0)

以下内容仍在进行中,但我认为我走在正确的轨道上。我从以下(标准)目录结构开始,其中我想要包含一个git c ++项目:

+---src
    +---main
        +---c++
        +---java

因为我不想更改原始make项目的目录结构,所以我需要定义自定义源目录和自定义include目录。这是拉动后产生的目录结构(我省略了无关的文件结构):

+---src
    +---main
        +---c++
            +---data
                +--- ...
            +---examples
                +--- ...
            +---scripts
                +--- ...
            +---src
                +---hunalign
                    +--- ... (source files)
                +---include
                    +--- ... (header files)
                +---utils
                    +--- ... (helper classes)
            +---tools
                +--- ...

通过以下配置,我编译了项目。

    <build>
    <plugins>
        <plugin>
            <artifactId>maven-nar-plugin</artifactId>
            <version>2.1-SNAPSHOT</version>
            <extensions>true</extensions>
            <configuration>
                <libraries>
                    <library>
                        <type>executable</type>
                        <run>true</run>
                    </library>
                </libraries>
                <!-- Here is the config for the custom source dir and includes -->
                <cpp>
                    <sourceDirectory>
                        ${basedir}/src/main/c++/src/hunalign
                    </sourceDirectory>
                    <includes>
                        <include>${basedir}/src/main/c++/src/include/*.h</include>
                    </includes>
                </cpp>
                <libraries>
                    <library>
                        <type>executable</type>
                        <run>true</run>
                    </library>
                </libraries>
            </configuration>
        </plugin>
    </plugins>
</build>
编辑:为了让javah正常运行,我不得不对其进行符号链接,因为maven一直在寻找错误的位置:

sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home/bin/javah /Library/Java/JavaVirtualMachines/jdk1.7.0_13.jdk/Contents/Home/jre/bin/javah