Я работаю над приложением и развертываю в облачном литейном цехе. Внутри он имеет 3 пользовательских зависимостей, разработанных нашей командой.Как создать неиспользуемую библиотеку (jar), используя весеннюю загрузку?
Все 3 зависимости - это проект загрузки и их @Configuration
.
- Зависимость 1 заключается в взаимодействии с Couchbase. Источником этой зависимости является загрузочный проект.
- Зависимость 2 заключается в взаимодействии с FluentD для ведения журнала. Источником этой зависимости является загрузочный проект.
- Зависимость 3 заключается в взаимодействии с внешним сервисом отдыха. Источником этой зависимости является загрузочный проект.
- Зависимость 4 имеет все эти 3 зависимости и также имеет несколько классов и констант utils.
Я использую эту зависимость 4 в нескольких веб-приложениях, которые имеют реализацию WebMVC.
Все работает нормально на моей локальной машине. Но когда я нажимаю это веб-приложение на облаке, иногда библиотеки запускаются перед веб-приложением, которое прерывает мое приложение с перерывами. Хорошо, что приложение восстанавливается через несколько секунд.
Я сделал следующие изменения в своих библиотеках (баночки/зависимости) и попытался облако. После выполнения этих изменений коэффициент сбоя приложения уменьшается, но, к сожалению, он по-прежнему сбой иногда, и я могу видеть, что зависимости выполняются перед приложением.
- Добавлено bootRepackage.enabled = ложь bootRepackage.withJarTask = баночка в build.gradle библиотеки
- Снял из библиотеки и добавил в моем веб-приложение springBoot { MainClass = "com.java.Application" исполняемый = true }
- Снято
@SpringBootApplication
из библиотек (зависимости/банки). Сейчас это только в моем веб-приложении.
Я не знаю, что это единственные шаги, которые делают невозможным выполнение загрузочной зависимости, или мне нужно будет сделать что-то еще. Пожалуйста, дайте мне знать, если я что-то упустил.
Вот пример класса приложения одной из моих зависимостей.
import org.springframework.context.annotation.ComponentScan;
@ComponentScan
public class LoggingApplication {
}
Sample of Web application main class.
@SpringBootApplication
@EnableWebMvc
@Import(LoggingApplication.class)
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Что означает «иногда библиотеки, выполняемые перед веб-приложением»? Библиотеки на самом деле не должны ничего выполнять. –
И, честно говоря, если они являются внутренними зависимостями, а не полноценными приложениями, то почему, черт возьми, вы даже используете Spring Boot? Нормальной Spring Framework должно быть достаточно. – rorschach