簡體   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