GraalVM Native 为各种平台打包时自动使用不同的产物名称

说明

GraalVM Native 默认打包产物名称为 Maven artifactId

如果在不同平台打包使用不同的产物名称,效果如下:

系统 CPU 名称
linux amd64 ${project.artifactId}-${project.version}-linux-amd64
linux aarch64 ${project.artifactId}-${project.version}-linux-arm64
mac os x x86_64 ${project.artifactId}-${project.version}-darwin-amd64
mac os x aarch64 ${project.artifactId}-${project.version}-darwin-arm64
windows amd64 ${project.artifactId}-${project.version}-windows-amd64
windows aarch64 ${project.artifactId}-${project.version}-windows-arm64

配置

<profiles>
    <profile>
        <id>native-linux-amd64</id>
        <activation>
            <os>
                <name>linux</name>
                <arch>amd64</arch>
            </os>
        </activation>
        <properties>
            <native.platform>linux-amd64</native.platform>
        </properties>
    </profile>
    <profile>
        <id>native-linux-aarch64</id>
        <activation>
            <os>
                <name>linux</name>
                <arch>aarch64</arch>
            </os>
        </activation>
        <properties>
            <native.platform>linux-arm64</native.platform>
        </properties>
    </profile>
    <profile>
        <id>native-darwin-x86_64</id>
        <activation>
            <os>
                <name>mac os x</name>
                <arch>x86_64</arch>
            </os>
        </activation>
        <properties>
            <native.platform>darwin-amd64</native.platform>
        </properties>
    </profile>
    <profile>
        <id>native-darwin-aarch64</id>
        <activation>
            <os>
                <name>mac os x</name>
                <arch>aarch64</arch>
            </os>
        </activation>
        <properties>
            <native.platform>darwin-arm64</native.platform>
        </properties>
    </profile>
    <profile>
        <id>native-windows-amd64</id>
        <activation>
            <os>
                <name>windows</name>
                <arch>amd64</arch>
            </os>
        </activation>
        <properties>
            <native.platform>windows-amd64</native.platform>
        </properties>
    </profile>
</profiles>
<build>
    <plugins>
        <plugin>
            <groupId>org.graalvm.buildtools</groupId>
            <artifactId>native-maven-plugin</artifactId>
            <configuration>
                <imageName>${project.artifactId}-${project.version}-${native.platform}</imageName>
            </configuration>
        </plugin>
    </plugins>
</build>