Я начал работать с Ubuntu Core и Snaps несколько дней назад. Мне удалось закончить очень простой учебник по созданию моей собственной привязки, и все сработало отлично.
Теперь пришло время идти дальше, поэтому для больших целей я попытался создать свою собственную привязку Hello World. Моя идея состоит в том, чтобы закодировать демон Java для печати «hello world» справа и назад, используя библиотеку StringUtils только для необходимости добавления некоторых зависимостей maven и загрузки кода из частного репозитория GitLab.
java-код работал нормально на моем компьютере, поэтому я пошел на snapcraft.yaml:
name: java-maven-hello
version: 0
summary: A java example using maven dependecies
description: this is not much more than an example
confinement: devmode
grade: devel
apps:
daemon:
command: java -cp basic-project-0.0.1-SNAPSHOT.jar es.ramadorp.odm.snapcraft.test.daemon.Daemontest
restart-condition: always
daemon: forking
parts:
daemon:
plugin: maven
source: http://gitlab.ramadorp.es/ramador/snap-maven-test.git
Время запуска оснастки и никаких проблем до сих пор, но когда я пытаюсь установить поставляемую оснастку, я получаю:
error: cannot perform the following tasks:
- Start snap "java-maven-hello" (unset) services ([start snap.java-maven-hello.daemon.service] failed with exit status 1: Job for snap.java-maven-hello.daemon.service failed because the control process exited with error code.
«Статус systemctl snap.java-maven-hello.daemon.service» дает мне:
● snap.java-maven-hello.daemon.service
Loaded: not-found (Reason: No such file or directory)
Active: failed (Result: timeout) since lun 2017-04-24 10:23:54 CEST; 4min 34s ago
abr 24 10:22:24 Bec systemd[1]: Starting Service for snap application java-maven-hello.daemon...
abr 24 10:22:24 Bec /usr/bin/snap[8670]: cmd.go:111: DEBUG: restarting into "/snap/core/current/usr/bin/snap"
abr 24 10:22:24 Bec snap[8670]: Error: Could not find or load main class es.ramadorp.odm.snapcraft.test.daemon.Daemontest
abr 24 10:22:24 Bec systemd[1]: snap.java-maven-hello.daemon.service: Control process exited, code=exited status=1
abr 24 10:23:54 Bec systemd[1]: snap.java-maven-hello.daemon.service: Start operation timed out. Terminating.
abr 24 10:23:54 Bec systemd[1]: Failed to start snap.java-maven-hello.daemon.service.
abr 24 10:23:54 Bec systemd[1]: snap.java-maven-hello.daemon.service: Unit entered failed state.
abr 24 10:23:54 Bec systemd[1]: snap.java-maven-hello.daemon.service: Failed with result 'timeout'.
Итак, я понимаю, что установка не находит .jar для выполнения ?, но я пошел глубоко в папки, созданные snapcraft, и "basic-project-0.0.1-SNAPSHOT.jar" есть, в /home/bec_1/wkf/snapmaven/parts/daemon/build/target. Мои знания не так много, чтобы понять, правильное расположение .jar или почему установка не находит «основной класс». Есть идеи? Кстати, мой файл pom.xml выглядит так:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.boundedinfinity</groupId>
<artifactId>basic-project</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.0</version>
</dependency>
</dependencies>
</project>
Возможно, вам потребуется указать путь к файлу jar при его запуске. Что-то вроде этого: -
command: java -cp $SNAP/basic-project-0.0.1-SNAPSHOT.jar es.ramadorp.odm.snapcraft.test.daemon.Daemontest
Возможно, вам потребуется указать путь к файлу jar при его запуске. Что-то вроде этого: -
command: java -cp $SNAP/basic-project-0.0.1-SNAPSHOT.jar es.ramadorp.odm.snapcraft.test.daemon.Daemontest
Возможно, вам потребуется указать путь к файлу jar при его запуске. Что-то вроде этого: -
command: java -cp $SNAP/basic-project-0.0.1-SNAPSHOT.jar es.ramadorp.odm.snapcraft.test.daemon.Daemontest
Возможно, вам потребуется указать путь к файлу jar при его запуске. Что-то вроде этого: -
command: java -cp $SNAP/basic-project-0.0.1-SNAPSHOT.jar es.ramadorp.odm.snapcraft.test.daemon.Daemontest