Я новичок в Spring и Spring Boot, но использую его как шаблон.
Файл Main.java частично содержит следующее:
package com.example;
@Controller
@SpringBootApplication
public class Main {
}
К сожалению, мне нужно импортировать другой класс, который называется Main, и использовать его в этом классе. Другой класс находится в Jar, и я действительно не хочу его перекомпилировать, поэтому я подумал, что лучше всего было бы переименовать этот Main.
Однако, когда я это сделаю (переименовав его в JavaGettingStarted), плагин Maven для Spring Boot выйдет из строя:
[ERROR] Failed to execute goal
org.springframework.boot:spring-boot-maven-plugin:2.0.0.RELEASE:repackage
(default) on project java-getting-started: Execution default of goal
org.springframework.boot:spring-boot-maven-plugin:2.0.0.RELEASE:repackage
failed: Unable to find a single main class from the following
candidates [com.example.JavaGettingStarted, com.example.Main] -> [Help
1]
Является ли Main своего рода дефолтным? Могу я его поменять?




Проблема не в имени класса, а в том, что плагин Spring Boot Maven обнаружил два класса с помощью основного метода. Либо удалите один из этих основных методов, либо явно настройте плагин maven:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.0.0.RELEASE</version>
<configuration>
<mainClass>Your class name here</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
Я могу порекомендовать иметь только один основной метод в одном классе, а не несколько из них. Это упрощает работу с Spring Boot (соглашения).