[英]Using profiles in Netbeans and Maven multimodule project to build for Windows and Linux
在Java的NetBeans“工作區”中,有幾個項目(所有目錄都在同一級別上):
main(String[] args)
方法) 我試圖通過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 -> linux
或Set 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.