Я создал проект maven в eclipse и хочу развернуть его на сервере (я думаю, tomcat). Я считаю, что это можно сделать с помощью весенней загрузки. Мой вопрос таков: этот проект импортировал несколько файлов jar, расположенных на моем ПК, и имеет другой проект, который находится в рабочей области в пути сборки. Я беспокоюсь, что во время интеграции (превращая его в maven) я могу потерять все зависимости. Как вообще лучше всего импортировать файлы 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.apache.jena</groupId>
<artifactId>jena-examples</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Apache Jena - Code Examples</name>
<description>A collection of example code illustrating uses of Apache Jena</description>
<url>http://jena.apache.org/</url>
<properties>
<ver.jena>[3.1.0,)</ver.jena>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<organization>
<name>Apache Software Foundation</name>
<url>http://apache.org</url>
</organization>
<dependencies>
<dependency>
<groupId>org.apache.jena</groupId>
<artifactId>apache-jena-libs</artifactId>
<version>${ver.jena}</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>com.mashape.unirest</groupId>
<artifactId>unirest-java</artifactId>
<version>1.4.9</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.6</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpasyncclient</artifactId>
<version>4.0.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.3.6</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20140107</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.8</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.8</version>
</dependency>
<dependency>
<groupId>com.github.galigator.openllet</groupId>
<artifactId>openllet-owlapi</artifactId>
<version>2.6.4</version>
</dependency>
<dependency>
<groupId>com.github.galigator.openllet</groupId>
<artifactId>openllet-jena</artifactId>
<version>2.6.4</version>
</dependency>
</dependencies>
</project>
Я думаю, у вас немного неправильное представление о том, что такое spring.boot на самом деле.
Spring-boot — это полноценная экосистема для создания микросервиса, интегрированная с множеством популярных java-библиотек.
Ваш pom выглядит как полностью написанное приложение, предназначенное для развертывания на пустом сервере tomcat. Spring-boot — это не пустой tomcat, spring-boot — это приложение/фреймворк, который использует tomcat под капотом.
Что вам нужно, так это перейти на http://tomcat.apache.org/ и загрузить сервер tomcat, а затем погуглить, как настроить/запустить tomcat в выбранной вами IDEA. После этого вам нужно открыть проект maven в выбранной вами IDEA и развернуть его на сервере tomcat.
Используя eclipse/intellij, в Интернете есть несколько руководств, объясняющих, как установить и настроить tomcat. А также множество руководств по импорту проектов maven, сборке и развертыванию на tomcat.
когда вы создаете что-то с помощью maven, все указанные зависимости в вашем pom.xml будут объединены в банку, которая в итоге будет создана. Таким образом, запуск «mvn clean install» создаст целевую папку. В этой папке у вас будет jar, который является вашей программой, содержащей ваш код, и все связанные jar-файлы, определенные в вашем pom.xml. Этот jar необходимо развернуть на вашем сервере tomcat. Я предлагаю вам просмотреть учебник по maven, а затем выполнить развертывание в учебнике по Tomcat в Интернете.
tomcat — это сервер приложений. Это означает, что вы можете развертывать на нем приложения. Итак, у вас запущен пустой сервер tomcat. И затем вы развертываете на нем свое приложение (свою банку)
вот несколько разных способов развертывания приложения на tomcat baeldung.com/tomcat-развертывание-война
Другой вопрос. У меня установлена Java на моей виртуальной машине, но нужно ли мне также устанавливать maven? А также, когда я создаю свой проект с помощью maven, какие команды я должен запускать и в каком порядке: mvn compile? подтвердить? установить? чистая установка? инициализировать? Я думаю, что пакет mvn идет последним.
Когда я запускаю компиляцию mvn, я получаю некоторые ошибки, говорящие о том, что некоторые пакеты не могут быть найдены, а затем также не могут быть найдены некоторые символы.
да, вам нужно установить maven, и чтобы понять все команды maven, я предлагаю поискать несколько руководств о том, как использовать maven, потому что это слишком долго объяснять здесь. И если у вас есть еще вопросы, начните новую тему со своими вопросами. Если он говорит, что какой-то пакет не может быть найден, то некоторые пакеты не могут быть найдены. И некоторые символы не могут быть найдены. Пожалуйста, если вы собираетесь задавать вопросы, вы должны быть очень подробными в своих вопросах.
Для интеграции локальных файлов jar в ваш проект maven посмотрите: Как добавить локальные файлы jar в проект Maven?
Чтобы добавить Spring Boot в ваш pom.xml, вам нужно добавить следующее (из этого документа
<!-- Inherit defaults from Spring Boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
</parent>
<!-- Add typical dependencies for a web application -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!-- Package as an executable jar -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
Я настроил свой pom, и я думаю, что spring был построен правильно, но моих банок слишком много, чтобы добавлять каждую из них по отдельности. Смогу ли я по-прежнему запускать свое приложение на сервере tomcat Centos 7 VM, когда файлы jar хранятся локально на моем ПК?
Я думаю, вы могли бы сделать это с помощью нескольких шагов: 1 - упаковать приложение spring как war 2 - смонтировать папку, в которой хранится ваш локальный jar на вашей виртуальной машине 3 - настроить путь к классам вашего приложения с подключенной папкой, чтобы иметь возможность разрешать зависимости . Хотя я настоятельно рекомендую вам хранить ваши локальные зависимости в папке /bin в базовом репозитории вашего приложения, а затем добавлять их с помощью maven. Гораздо более воспроизводимый.
Я бы также рекомендовал использовать Tomcat, встроенный в SpringBoot, упаковав ваше приложение в виде jar-файла. Если все ваши локальные зависимости указаны в вашем pom.xml, вы можете создать файл jar своего приложения и развернуть его где угодно, если установлена java.
Что вы подразумеваете под «вы должны хранить свои локальные зависимости в папке / bin в базовом репозитории вашего приложения, а затем добавлять их с помощью maven»? Разве я не могу просто добавить их, чтобы построить путь, как всегда? Нужно ли мне делать что-то конкретное с банками?
Я понял часть об их хранении в папке lib внутри проекта, но я добавил их для нормального пути сборки.
Что вы имеете в виду под пустым? У меня уже установлен tomcat на виртуальной машине Centos 7, и я хочу, чтобы мое Java-приложение запускалось на этом сервере. Что меня также беспокоит, так это все банки, которые где-то хранятся на моем ПК, и то, как их можно «загрузить» и интегрировать с остальной частью программы Java и не получить никаких ошибок, которые я хочу иметь возможность отправлять и получать запросы на сервере, а также другой проект, который находится в той же рабочей области, и я построил путь для использования кода этого проекта. Я добавил пружинную загрузку, как предлагает верхний ответ, но я не сделал того же с банками, так как их слишком много.