#java #maven #jar #spring-tool-suite
#java #maven #jar #spring-tool-suite
Вопрос:
У меня есть этот код в pom.xml относительно <build></build>
<build>
<finalName>Fleaty</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
Каждый раз, когда я запускаю приложение As -> Spring Boot, я получаю некоторый файл jar в каталоге проекта. Как не заставить STS или Maven генерировать jar-файл?
Ответ №1:
Вероятно, в вашей конфигурации запуска включена опция создания временного JAR, чтобы избежать проблем с длиной пути к классу — в конфигурации запуска на Classpath
вкладке.
В зависимости от количества файлов JAR в вашем пути к классу команда для запуска вашего приложения может быть очень длинной и может вызвать проблемы с некоторыми ограничениями в Windows на длину командной строки (которая выполняется для запуска вашего приложения). Чтобы обойти это ограничение, IDE генерирует временный JAR и запускает приложение оттуда. Но вы можете отключить это в конфигурации запуска.
Комментарии:
1. Привет, Мартин, спасибо за ваш ответ. Да, я нашел, где снять флажок с параметра, на который вы ссылаетесь, я думаю. Итак, я сделал: щелкните правой кнопкой мыши по проекту -> Выполнить как -> Запустить конфигурацию -> вкладка Classpath -> снимите флажок: «Используйте временный JAR для указания пути к классу (чтобы избежать ограничений длины пути к классу). После этого, когда я запустил приложение с помощью приложения Spring Boot Run, в консоли появилось сообщение: не удалось найти основной класс,
2. По моему опыту, для этого сообщения возможно несколько причин. Я бы попробовал «Проект -> Очистить» и «Maven -> Обновить проект». Иногда контейнеры пути к классам путаются, и эти действия помогают это исправить. Но, возможно, вы действительно сталкиваетесь с проблемой ограничения пути к классам в Windows, и в этом случае я бы рекомендовал вызвать ошибку в Eclipse JDT и попросить совета. Вы также можете попытаться создать образец проекта, который воспроизводит проблему, чтобы мы могли рассмотреть ее поближе.