镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

iconFile property is ignored #501

Open

Description

@fvarrui

iconFile is accepted by both plugins, but it never sets the app icon.

Where

  • Packager.resolveIcon() (packagers/Packager.java, called at line 177) overwrites iconFile unconditionally with the platform property (linuxConfig.pngFile, macConfig.icnsFile, winConfig.icoFile), then with ${assetsDir}/<platform>/${name}.<ext>, then with the default icon.
  • The Gradle PackageTask doesn't even have an iconFile property, so it's never forwarded from the extension.

Possible fix

Either use iconFile as a fallback after the platform property (it would have to match the target platform's format), or remove it and keep the per-platform properties, which is what the documentation now recommends.

Workaround

Set the platform icon property, or put ${name}.png/.icns/.ico in assetsDir (see Icons and assets).

Activity

  1. fvarrui commented on Oct 11, 2026

    @fvarrui
    CollaboratorAuthor

    Fixed in devel (29e3392): iconFile is now used when the platform's icon property (pngFile, icnsFile, icoFile) isn't set, on the platforms whose format it has (.png GNU/Linux, .icns macOS, .ico Windows); otherwise the build warns that it's ignored. The Gradle PackageTask forwards it too.

    It will ship in 2.0.1, and I'll close this issue then.

    How to test 2.0.1-SNAPSHOT

    Important

    Since 2.0.0 the groupId, the Gradle plugin id and the Java packages are io.github.javapackager (see Upgrading to 2.0).

    Maven, add the snapshots repository and use the snapshot version:

    <pluginRepositories>
        <pluginRepository>
            <id>central-portal-snapshots</id>
            <url>https://central.sonatype.com/repository/maven-snapshots/</url>
            <releases><enabled>false</enabled></releases>
            <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>
    </pluginRepositories>
    [...]
    <plugin>
        <groupId>io.github.javapackager</groupId>
        <artifactId>javapackager</artifactId>
        <version>2.0.1-SNAPSHOT</version>
        [...]
    </plugin>

    Gradle, add the snapshots repository in settings.gradle:

    pluginManagement {
        repositories {
            maven { url = 'https://central.sonatype.com/repository/maven-snapshots/' }
            gradlePluginPortal()
        }
    }

    and use the snapshot version in build.gradle:

    plugins {
        id 'io.github.javapackager' version '2.0.1-SNAPSHOT'
    }

    See Snapshot versions for more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingfixedIssue fixed and release pending

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions