Editando um snap de java

3

Estou tentando alterar a origem de um snap de java. Aqui está o que eu faço:

  1. Baixe o projeto de amostra.

    svn export https://github.com/snapcore/snapcraft/trunk/demos/java-hello-world
    
  2. Crie o snap chamado java-hello-world.

    cd java-hello-world  
    snapcraft
    
  3. Instale o snap.

    sudo snap install java-hello-world_0_amd64.snap --dangerous
    
  4. Execute o snap.

    java-hello-world.hello
    

    A saída é Hello World como esperado.

Agora, quero alterar o snap para que ele imprima "Hello Snap" em vez de "Hello World". Aqui está o que eu faço:

  1. Edite o java-hello-world/snap/snapcraft.yaml . Alterar nota para devel e confinamento para devmode .

  2. Edite o java-hello-world/src/oata/HelloWorld.java . Altere a linha 7 para System.out.println("Hello Snap"); .

  3. Iterar sobre o snap.

    snapcraft prime
    sudo snap try --devmode prime/
    

    A saída é Hello World . Eu gostaria de ter a saída Hello Snap aqui.

O que estou fazendo de errado: há duas coisas no processo de criação que parecem suspeitas para mim.

  1. Ao executar o snapcraft prime, ele diz:

    Skipping pull local (already ran)  
    Skipping build local (already ran)  
    Skipping stage local (already ran)  
    Skipping prime local (already ran)  
    Skipping pull wrapper (already ran)  
    Skipping build wrapper (already ran)  
    Skipping stage wrapper (already ran)  
    Skipping prime wrapper (already ran) 
    

    Acho que pular todas essas etapas também inclui ignorar a leitura e compilar o arquivo java-hello-world/src/oata/HelloWorld.java . Isso é por que a saída ainda é a mesma depois de editar o arquivo. Como posso não pular esse passo? O tutorial diz:

    Note: The different steps of snapcraft are: pull (download source for all parts), build, stage (consolidate installed files of all parts), prime (distill down to just the desired files), snap (create a snap out of the prime/ directory). Each steps depends on the previous one to be completed".

    Eu tentei snapcraft pull em vez de prime , mas o resultado é o mesmo.

  2. Ao executar snapcraft na primeira vez, ant dá um aviso.

    [javac] /home/username/Java/java-hello-world/parts/local/build/build.xml:19: warning: 'includeantruntime' was not set,
    defaulting to build.sysclasspath=last; set to false for repeatable builds
    

    Eu não sei o que defaulting to build.sysclasspath=last significa. Então esse pode ser o problema. "definido como false para compilações repetíveis" deve ok, isso é o que esta resposta sugere .

Como posso atualizar a fonte do snap depois de alterá-lo? Muito obrigado antecipadamente.

    
por Michael_H 14.03.2017 / 06:46

1 resposta

1
  1. Limpar a compilação anterior

    snapcraft clean
    

    Mas quando você tem um grande projeto, você pode querer apenas para essa parte

    snapcraft clean local
    
  2. Reconstrua novamente

    snapcraft
    
por user.dz 22.04.2017 / 03:07