Simple java snap com dependência jre

3

Prezados especialistas em [artesanato],

Estou criando um simples snap para um aplicativo java:

name: freeplane-snap
version: 1.5.18-1
summary: Java program for working with Mind Maps
description: ...
confinement: devmode
grade: stable

apps:
  freeplane-snap:
    command: ./freeplane.sh

parts:
  main:
    plugin: dump
    source: freeplane-1.5.18/
    stage-packages: [openjdk-8-jre]
    filesets:
      mybuild:
        - "*"
    stage:
      - $mybuild
    snap:
      - $mybuild

O Freeplane usa um sistema de compilação gradle, mas o plug-in snapeline gradle é não é poderoso o suficiente (espera que "gradlew" esteja lá e não "gradle", e é usado para projetos de frasco único, ou seja, sempre com a opção 'jar'). Onde eu posso enviar solicitações de recursos / patches para isso?

Estou usando a distribuição binária do projeto (descompactado para ./freeplane-1.5.18) com o plugin 'dump', que funciona bem. Contudo, desde que eu não estou usando um sistema de compilação de java, o jre está faltando no snap (quando rodando "freeplane-snap" eu recebo um erro que o JDK não pode ser encontrado, NÃO ao executar o freeplane.sh diretamente). Eu tentei adicionar com 'stage-packages: [openjdk-8-jre]' mas isso não ajudou.

Você poderia me dizer como adicionar o jre ao mix?

Mais uma pergunta: ouvindo sobre esse material de contenção, é possível / viável (usando plugues?) para criar um aplicativo de desktop que pode ler e escrever (mapas mentais) de / para todos os lugares, assim como um .deb normal? (como plugs: [network, home]?)

Muitos agradecimentos e melhores cumprimentos, Felix

    
por Felix Natter 27.12.2016 / 17:37

1 resposta

2

  1. Você precisará usar o JDK, não o JRE. Isso é para incluir as dependências da biblioteca awt / viz para GUIs
  2. Você precisará adicionar os plugues apropriados para visualização (pelo menos X11).
  3. Você pode precisar de um wrapper melhor ou alterar o script incluído.
    1. A propriedade user.home do Java não está definida corretamente.
    2. Os dados de configuração da fonte não estão definidos corretamente.

Aqui está um exemplo do meu projeto maven: link

Para criar a partir do código-fonte, abra um bug do Issue e do LaunchPad. Eu escrevi o plugin gradlew, mas não sou um usuário graduado.

EDIT: Adicionado arquivos de trabalho

Aqui está um snap + wrapper que parece funcionar.
É realmente confuso, pois copia o conteúdo do plano livre duas vezes.
link

EDIT 2: Eu enviei uma atualização para o plugin gradle no snapcraft. Ele detectará automaticamente se gradlew existe e também fornece a capacidade de especificar o diretório de saída.
Aqui está o freeplane com snapcraft (se você tiver um plugin atualizado). link

    
por Matt Aguirre 29.12.2016 / 18:22

Tags