Каталог статей
-
- 1. В pom файле
- 2. Название пакета Jar
- 3. Упаковка Maven
- 4. Запустите пакет jar.
- 5. Упакуйте и сгенерируйте боевой пакет
- 6. Возникшие ошибки и меры предосторожности
-
- 6.1 Соответствующая страница не может быть найдена при доступе к странице HTML
- 6.2 HTML-файл создается в целевом объекте, но HTML-страница все еще не найдена.
- 6.3 Плагины, такие как `maven-compiler-plugin` или` spring-boot-maven-plugin` в файле pom, не могут быть импортированы правильно (становится красным)
После разработки проекта SpringBoot его необходимо упаковать в пакет jar package / war, развернуть и запустить для завершения процесса всего проекта.
1. В pom файле
<build>
<finalName>DAG-1.0</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.yml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.yml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
1.1 плагин компилятора maven
maven-compiler-plugin
Вы можете указать версию JDK в проекте и версию файла класса, сгенерированного указанной компиляцией. В моем примере я указал, что JDK11 использовался в исходном коде во время разработки, и сгенерированный файл класса также соответствует JDK11.
1.2 весенняя загрузка-maven-плагин
spring-boot-maven-plugin
Плагины упакованы с использованием Maven. repackage
Переупакуйте приложение. По умолчанию две цели maven - переупаковка и запуск - будут включать любые зависимости, определенные в проекте.
Некоторые зависимости необходимо исключить из исполняемого пакета jar. Есть три способа исключить зависимые модули во время работы пакета:
1.2.1 Исключить конкретный модуль maven
Исключение определенного модуля maven достигается за счет уникальной комбинации groupId и artifactId. (При необходимости вы можете добавить классификатор для однозначного подтверждения.)
<build>
<finalName>DAG-1.0</finalName>
<plugins>
......
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<excludes>
<excludes>
<groupId>com.foo</groupId>
<artifactId>bar</artifactId>
</excludes>
</excludes>
</configuration>
</plugin>
</plugins>
......
</build>
Исключите модуль bar из com.foo.
1.2.2 Исключить все модули maven, соответствующие "заданному artifactId"
Исключить все модули maven, соответствующие «указанному artifactId».
<build>
<finalName>DAG-1.0</finalName>
<plugins>
......
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<excludes>
<excludeArtifactIds>my-lib,another-lib</excludeArtifactIds>
</excludes>
</configuration>
</plugin>
</plugins>
......
</build>
Исключенные artifactId
есть my-lib
, another-lib
все модули, т.е. все groupId
ниже , artifactId
для my-lib
, another-lib
модуля.
1.2.3 Исключить все модули maven, принадлежащие "заданному идентификатору группы"
<build>
<finalName>DAG-1.0</finalName>
<plugins>
......
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<excludes>
<excludeGroupIds>com.foo</excludeGroupIds>
</excludes>
</configuration>
</plugin>
</plugins>
......
</build>
Исключены groupId
как com.foo
все модули.
2. Название пакета Jar
<finalName>Your jar Package Name</finalName>
Сборка fileName
указывает имя пакета jar, созданного при упаковке.
3. Упаковка Maven
Выполните следующие команды в корневом каталоге проекта SpringBoot:
mvn package spring-boot:repackage
Вы можете создать целевую папку в корневом каталоге, который содержит xxx.jar.
4. Запустите пакет jar.
4.1 Консольный запуск пакета jar
java -jar xxx.jar
4.2 Запустите пакет jar в фоновом режиме, закрытие терминала не влияет на работу пакета jar
nohup java -jar DAG-1.0.jar > msg.log 2>&1 &
Пакет jar работает в фоновом режиме, информация журнала вводится в файл msg.log, а журнал ошибок и правильный журнал заносятся в файл msg.log.
Добавление амперсанда в конце команды означает, что процесс будет выполняться в фоновом режиме, так что он немедленно вернется в состояние приглашения, и мы можем продолжить делать следующее.
4.3 Запустите пакет jar в фоновом режиме и введите правильный журнал и неправильный журнал в разные файлы.
nohup java -jar DAG-1.0.jar >> msg1.log 2>>msg2.log &
Правильный журнал вводится в msg1.log, а неправильный журнал вводится в msg2.log.
5. Упакуйте и сгенерируйте боевой пакет
Пакет jar создается по умолчанию. Укажите, какую форму пакета генерировать в файле pom
<packaging>war</packaging>
<name>DAG-1.0</name>
<description>DAG project for Spring Boot</description>
Выполнить команды упаковки
mvn package spring-boot:repackage
Вы можете видеть, что военный пакет сгенерирован, а военный пакет развернут для запуска программы.
6. Возникшие ошибки и меры предосторожности
6.1 Соответствующая страница не может быть найдена при доступе к странице HTML
В этом случае мы должны сначала проверить, есть ли соответствующая папка шаблонов в созданной целевой папке и файл xxx.html, который должен в ней содержаться. Когда программа запущена, она распознает только то, что находится в целевой папке.Если в целевой папке нет соответствующей папки шаблонов и файла xxx.html, невозможно открыть HTML-страницу.
Распространенной причиной этой ошибки является то, что xxx.html не указан в качестве ресурса проекта, который нужно упаковать. Это необходимо указать в файле pom.
<build>
......
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.yml</include>
<include>**/*.html</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.yml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
<build>
Как и выше, укажите файл .properties, файл .xml, файл .yml, файл .html в папке src / main / resources и файл .properties, файл .xml, .yml в папке src / main / java. используется в качестве файла ресурсов проекта, поэтому файл html можно найти в сгенерированном целевом файле.
Если вы удалите указание на файл .html, соответствующий HTML-файл не будет найден в созданной целевой папке, и HTML-страница не может быть открыта.
<build>
......
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.yml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
<include>**/*.yml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
<build>
После удаления в созданной целевой папке нет HTML-файла.
Без папки шаблонов и HTML-файлов в ней запущенная программа не сможет получить доступ к HTML-странице.
6.2 HTML-файл создается в целевом объекте, но HTML-страница все еще не найдена.
Возможно, thymeleaf
конфигурация неправильная.
thymeleaf.prefix
Вы должны написать его правильно, и вы не можете /
написать на один больше или один меньше /
, потому что таким образом, когда вы пишете страницу доступа, в пути будет больше или меньше одной, и вы /
не сможете найти HTML-страницу .
6.3 Файл pom maven-compiler-plugin
или spring-boot-maven-plugin
другие плагины не могут быть правильно импортированы (становится красным)
Вам необходимо ввести эти подключаемые модули в зависимости, а затем ввести эти подключаемые модули в подключаемые модули в сборке.