繁体   English   中英

使用Netbeans和Maven多模块项目中的配置文件为Windows和Linux构建

[英]Using profiles in Netbeans and Maven multimodule project to build for Windows and Linux

在Java的NetBeans“工作区”中,有几个项目(所有目录都在同一级别上):

  • 主要
  • MainExecutable (包含用于调试的main(String[] args)方法)
  • JNILibrary (仅适用于Linux)
  • 10个其他项目

我试图通过JNILibrary \\ pom.xml中配置文件为Windows提供“存根”(只是一些空方法)源代码,使其在Windows上可调试:

<groupId>com.example</groupId>
<artifactId>jnilibrary</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<parent>
    <groupId>com.example.test</groupId>
    <artifactId>Main</artifactId>
    <version>0.0.1-SNAPSHOT</version>        
    <relativePath>../Main/pom.xml</relativePath>
</parent>

<build>
    <sourceDirectory>${src.dir}</sourceDirectory>
</build>

<profiles>
    <profile>
        <id>windows</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <properties>
            <src.dir>src/windows/java</src.dir>
        </properties>
    </profile>
    <profile>
        <id>linux</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <src.dir>src/linux/java</src.dir>
        </properties>
    </profile>
</profiles>

之后,当我在NetBeans中的JNILibrary项目上单击鼠标右键时,我可以选择Set Configuration -> linuxSet Configuration -> Windows

不幸的是,当我尝试调试MainExecutable项目时-它仍然(生成并)启动Linux版本-并且无法在Windows PC上启动。

有人可以指出正确的方向来解决我的问题吗?

这是Main \\ pom.xml的摘录:

<groupId>com.example.test</groupId>
<artifactId>Main</artifactId>
<version>0.0.1-SNAPSHOT</version>   

<packaging>pom</packaging>
<name>Main</name>
<modules>
    <module>../MainExecutable</module>
    <module>../jnilibrary</module>
    <module>../10/further/modules</module>
</modules>

这是MainExecutable \\ pom.xml的摘录:

<parent>
    <groupId>com.example.test</groupId>
    <artifactId>Main</artifactId>
    <relativePath>../Main</relativePath>
    <version>0.0.1-SNAPSHOT</version>       
</parent>
<artifactId>MainExecutable</artifactId>
<packaging>jar</packaging>

如您所写,将2个配置文件移至Main / pom.xml并向其添加新属性jnilibrary.src.dir

<profiles>
    <profile>
        <id>windows</id>
        <activation>
            <activeByDefault>false</activeByDefault>
        </activation>
        <properties>
            <jnilibrary.src.dir>src/windows/java</src.dir>
        </properties>
    </profile>
    <profile>
        <id>linux</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>

        <properties>
            <jnilibrary.src.dir>src/linux/java</src.dir>
        </properties>
    </profile>
</profiles>

并在JNILibrary \\ pom.xml中使用该属性

<build>
    <sourceDirectory>${jnilibrary.src.dir}</sourceDirectory>
</build>

您可以使用“操作系统名称”来激活配置文件:

<build>
    <sourceDirectory>${src.dir}</sourceDirectory>
</build>

<profiles>
    <profile>
        <id>windows</id>
        <activation>
            <os>
                <name>Windows</name>
            </os>
        </activation>
        <properties>
            <src.dir>src/windows/java</src.dir>
        </properties>
    </profile>
    <profile>
        <id>linux</id>
        <activation>
            <os>
                <name>Linux</name>
            </os>
        </activation>
        <properties>
            <src.dir>src/linux/java</src.dir>
        </properties>
    </profile>
</profiles>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM