Skip to content

[assembler] Let targetJdks in jlink be configured via matrix #1783

@aalmiray

Description

@aalmiray

Is your feature request related to a problem? Please describe.
Reduce duplication and verbosity in configuration file.

Describe the solution you'd like
The following configuration

assemble:
  jlink:
    helloworld:
      active: ALWAYS
      imageName: '{{distributionName}}-{{projectVersion}}'
      matrix:
        rows:
          - { platform: osx-aarch_64,      jdkdir: OsxArm,         filename: macosx_aarch64, suffix: '/zulu-17.jdk/Contents/Home' }
          - { platform: osx-x86_64,        jdkdir: OsxIntel,       filename: macosx_x64,     suffix: '/zulu-17.jdk/Contents/Home' }
          - { platform: linux_musl-x86_64, jdkdir: LinuxMuslIntel, filename: linux_musl_x64, suffix: '' }
          - { platform: linux-x86_64,      jdkdir: LinuxIntel,     filename: linux_x64,      suffix: '' }
          - { platform: linux-aarch_64,    jdkdir: LinuxArm,       filename: linux_aarch64,  suffix: '' }
          - { platform: windows-x86_64,    jdkdir: WindowsIntel,   filename: win_x64,        suffix: '' }
          - { platform: windows-aarch_64,  jdkdir: WindowsArm,     filename: win_aarch64,    suffix: '' }
      targetJdkPattern:
        path: '{{jdkPathPrefix}}/{{matrix.jdkdir}}/{{jdkFilePrefix}}-{{matrix.filename}}{{matrix.suffix}}'
      mainJar:
        path: 'target/{{distributionName}}-{{projectVersion}}.jar'

should be equivalent to this explicit configuration

assemble:
  jlink:
    helloworld:
      active: ALWAYS
      imageName: '{{distributionName}}-{{projectVersion}}'
      targetJdks:
        - path: '{{jdkPathPrefix}}/zulu17OsxIntel/{{jdkFilePrefix}}-macosx_x64/zulu-17.jdk/Contents/Home'
          platform: 'osx-x86_64'
        - path: '{{jdkPathPrefix}}/zulu17OsxArm/{{jdkFilePrefix}}-macosx_aarch64/zulu-17.jdk/Contents/Home'
          platform: 'osx-aarch_64'
        - path: '{{jdkPathPrefix}}/zulu17LinuxIntel/{{jdkFilePrefix}}-linux_x64'
          platform: 'linux-x86_64'
        - path: '{{jdkPathPrefix}}/zulu17LinuxMuslIntel/{{jdkFilePrefix}}-linux_musl_x64'
          platform: 'linux_musl-x86_64'
        - path: '{{jdkPathPrefix}}/zulu17LinuxArm/{{jdkFilePrefix}}-linux_aarch64'
          platform: 'linux-aarch_64'
        - path: '{{jdkPathPrefix}}/zulu17WindowsIntel/{{jdkFilePrefix}}-win_x64'
          platform: 'windows-x86_64'
        - path: '{{jdkPathPrefix}}/zulu17WindowsArm/{{jdkFilePrefix}}-win_aarch64'
          platform: 'windows-aarch_64'
      mainJar:
        path: 'target/{{distributionName}}-{{projectVersion}}.jar'

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestreleasedIssue has been released

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions