我必须根据平台包括不同的依赖关系,例如windows和linux使用gradle/maven。如何确保在构建windows jar时只使用windows所需的依赖项,在创建linux jar时只使用linux所需的依赖项?
wmvff8tz1#
例如,
jpackage
ico
png
<dependencies> <dependency> <groupId>${swt.groupId}</groupId> <artifactId>${swt.artifactId}</artifactId> <version>${swt.version}</version> </dependency> ...
和添加配置文件
<profiles> <profile> <id>linux</id> <activation> <os> <name>Linux</name> <arch>amd64</arch> </os> </activation> <properties> <swt.groupId>org.eclipse.platform</swt.groupId> <swt.artifactId>org.eclipse.swt.gtk.linux.x86_64</swt.artifactId> <swt.version>3.119.0</swt.version> <zname>linux_x86_64</zname> <iconType>png</iconType> <zformat>tar.gz</zformat> </properties> </profile> <profile> <id>windows</id> <activation> <os> <name>Windows 10</name> <arch>amd64</arch> </os> </activation> <properties> <swt.groupId>org.eclipse.platform</swt.groupId> <swt.artifactId>org.eclipse.swt.win32.win32.x86_64</swt.artifactId> <swt.version>3.119.0</swt.version> <zname>windows_x86_64</zname> <iconType>ico</iconType> <zformat>zip</zformat> </properties> </profile> ...
在Linux上运行mvn help:system | grep "os\."获取结果:
mvn help:system | grep "os\."
os.name=Linux os.version=5.13.0-40-generic os.arch=amd64
在Windows上运行mvn help:system | findstr "os\."获取结果:
mvn help:system | findstr "os\."
os.name=Windows 10 os.version=10.0 os.arch=amd64
将os name和os archMap为profile-〉activation-〉os-〉name和os-〉arch,然后config profile-〉properties将相应的值设置为swt.groupId,swt.artifactId,swt.version。当您运行mvn clean package时,maven将通过Map到os.name和os.arch值来自动选择配置文件激活。
profile
activation
os
name
arch
properties
swt.groupId
swt.artifactId
swt.version
mvn clean package
1条答案
按热度按时间wmvff8tz1#
Maven pom.xml
例如,
jpackage
时,在Windows上,图标文件是ico
,在Linux上,图标文件是png
和添加配置文件
如何知道您的激活os名称和arch值?
在Linux上运行
mvn help:system | grep "os\."
获取结果:
在Windows上运行
mvn help:system | findstr "os\."
获取结果:
将os name和os archMap为
profile
-〉activation
-〉os
-〉name
和os
-〉arch
,然后configprofile
-〉properties
将相应的值设置为swt.groupId
,swt.artifactId
,swt.version
。当您运行
mvn clean package
时,maven将通过Map到os.name和os.arch值来自动选择配置文件激活。