首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Netbeans和Maven多模块项目中使用配置文件为Windows和Linux构建

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

Stack Overflow用户
提问于 2016-01-22 12:17:37
回答 2查看 2.6K关注 0票数 0

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

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

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

代码语言:javascript
复制
<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>

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

不幸的是,当我尝试调试MainExecutable项目时-它仍然(构建和)启动Linux版本-并且未能在我的Windows上启动。

有人能指点正确的方向如何解决我的问题吗?

以下是Main\pom.xml的摘录

代码语言:javascript
复制
<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的摘录

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-25 12:34:26

正如您所写的,将这2个配置文件移动到Main/put.xml,并将新的属性jnilibrary.src.dir添加到这两个配置文件中

代码语言:javascript
复制
<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中使用该属性

代码语言:javascript
复制
<build>
    <sourceDirectory>${jnilibrary.src.dir}</sourceDirectory>
</build>
票数 2
EN

Stack Overflow用户

发布于 2016-01-22 19:16:59

您可以使用OS名称来激活配置文件:

代码语言:javascript
复制
<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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34946547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档