[英]snapscraft snap.yaml for java apps using swing ui on ubuntu
我有一個使用 java.awt Swing UI 的基本 Java 應用程序,我想為它創建一個快照,以便在安裝它時有一個可用的啟動器並且我的 UI 啟動。 我使用 gradle 和 jar 任務來創建一個工作正常的 jar。
當然,我在一個類中,當調用時加載我的應用程序就好了:
package com.foo
class Bar() {
static void main(String... args) { launchUI() }
}
我在項目的根目錄創建了一個 snap 文件夾和一個 snap.yaml,我在那里按照https://snapcraft.io/docs/java-applications上的說明創建了一個 snap yaml,它生成一個 snap 文件,它也安裝得很好:
name: deepthought
base: core18
version: '0.0.7'
summary: ""
icon: gui/foo.png
description: |
Computes the ultimate answer for life the universe and everything
grade: devel # must be 'stable' to release into candidate/stable channels
confinement: devmode # use 'strict' once you have the right plugs and slots
# This doesn't work
#apps:
# htmldoc:
# command: desktop-launch $SNAP/bin/foo.sh
## desktop: share/applications/htmldoc.desktop
# plugs: [home, network, x11]
parts:
foopart:
plugin: gradle
source: https://github.com/bsautner/foo.git
source-type: git
gradle-options: [] # suppress running of tests and run the war task
gradle-output-dir: build/libs
我花了很多時間試圖弄清楚:
如果有人可以與啟動器共享一個 Java 程序的工作 snap.yaml,並且如果有任何提及您注意到這些文件與 /snap/snap 路徑相關的路徑的內容,我將不勝感激.yaml 文件
好的想通了 - 文檔沒有說這個,但文件是相對於項目的根目錄的,所以即使 yaml 說這是發布
apps:
cmd3:
command: usr/bin/foo.sh
foo.sh 應該在項目的根目錄中,這里的 orginize 部分將其移動到 bin 目錄
foo:
plugin: gradle
source-type: local
source: .
build-packages:
- openjdk-11-jdk
stage-packages:
- openjdk-11-jdk
- x11-utils
organize:
${SNAPCRAFT_PART_BUILD}/jg-snap: usr/bin/foo.sh
jar 位於 /snap/foo/current/usr/jar 目錄中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.