Какой параметр командной строки у моего приложения? - PullRequest
0 голосов
/ 01 августа 2020

Я создал свое первое приложение для весенней загрузки, которое работает хорошо, и я хочу развернуть его на своем сервере VPS, но есть проблема. Я не могу запустить его в интерфейсе командной строки, он отлично работает, когда я дважды щелкаю.

Команды, которые я пробовал до сих пор:

java -jar jarfilename.jar

mvn spring-boot: run

mvnw spring boot: run

ни одно из них не сработало Я бы с радостью добавил зависимость от maven в мой pom.xlm, но прямо сейчас я просто хочу знать, как я могу узнать, какая команда дается при двойном щелчке.

обе команды mvn и java определены в пути btw

POM файл ->

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven 4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.1.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>name</groupId>
<artifactId>test1</artifactId>
<version>1.0-SNAPSHOT</version>
<name>test1</name>
<description>My personal webpage</description>

<properties>
    <java.version>14</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>org.webjars</groupId>
        <artifactId>jquery</artifactId>
        <version>1.9.1</version>
    </dependency>

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.12</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-mail</artifactId>
        <version>2.2.5.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

Ответы [ 3 ]

2 голосов
/ 01 августа 2020

Вы должны узнать о процессе разработки приложений для загрузки Spring - это очень поможет:

Maven - это инструмент сборки, который используется для создания jar-файла приложения (также известного как Artifact) из ваших исходных файлов. . Maven компилирует ваши источники, запускает тесты, которые у вас есть, упаковывает артефакт в папку target, которая должна быть создана после запуска команды mvn package.

После этого, если определения в pom.xml верны , вы сможете запустить следующее:

cd target

java -jar my-app.jar 

  • Здесь my-app.jar - это имя артефакта, который вы можете найти в папке target.

Обратите внимание, что специально для приложений с весенней загрузкой вы должны использовать spring-boot-maven-plugin, определенный в pom.xml, что выглядит так, как будто вы сделали правильно

1 голос
/ 01 августа 2020

Итак, вы используете java 14 байт-код с java8

Я думаю, что когда вы дважды щелкаете, система находит подходящую JVM на основе версии байт-кода .. где, когда вы запускаете из командной строки, сначала JVM из выбран путь.

Использовать указанные здесь свойства https://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html#

<properties>
    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.compiler.source>1.8</maven.compiler.source>
</properties>
0 голосов
/ 01 августа 2020

Если вы хотите перенести его на vps, лучший вариант - использовать JAR или war.

Использование его с исходным кодом, очевидно, не лучший способ запуска на сервере.

Для создания jar вы можете использовать package target в maven.

для этой команды запуска mvn package в каталоге project- root.

Будет создан журнал, как показано ниже

введите описание изображения здесь

Найдите Building jar: и скопируйте банку на VPS.

затем запустите java -jar jarfilename.jar

Кстати, у вас есть java 14 на твоей машине? Я думаю, что это root причина того, почему ваша сборка не работает.

<properties>
    <java.version>14</java.version>
</properties>

Попробуйте изменить его на более старые версии, и ваша сборка может начать работать.

...