2015-10-23 10 views
7

Ho impostato un progetto di avvio a molla usando Spring Initializer, ho provato più volte a creare un nuovo progetto o giocare con le dipendenze, tutto sembra essere a posto .L'applicazione Spring Boot non può risolvere il pacchetto org.springframework.boot

Sto usando STS (Spring Tool Suite) e mostra errori sulle importazioni dal pacchetto org.springframework.boot. L'esecuzione l'applicazione genera un'eccezione:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: SpringApplication cannot be resolved.

com.example.DemoApplication:

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 

@SpringBootApplication 
public class DemoApplication { 

    public static void main(String[] args) { 
     SpringApplication.run(DemoApplication.class, args); 
    } 
} 

pom.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<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>com.example</groupId> 
    <artifactId>demo</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>demo</name> 
    <description>Demo project for Spring Boot</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.2.7.RELEASE</version> 
     <relativePath/> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <java.version>1.8</java.version> 
     <start-class>com.example.DemoApplication</start-class> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 


</project> 

Sto usando Java 1.8 con STS.

+0

Eventuali duplicati di [@SpringBootApplication non può essere risolto a un tipo In STS] (https://stackoverflow.com/questions/41668819/springbootapplication-cannot-be-resolved-to-a-type-in-sts) – Foolish

risposta

0

Quando si esegue l'applicazione come jar, il file Manifest.MF deve sapere quale classe ha il metodo principale.

Per aggiungere queste informazioni quando SpringBoot compila il codice, aggiungi la proprietà start-class sul tuo file pom.

Esempio:

<properties> 
     <start-class>com.example.DemoApplication</start-class> 
</properties> 
+0

Questo sembra risolvere uno dei miei problemi, ottimo. Ma ora non è ancora possibile risolvere la classe SpringApplication e l'annotazione. –

+1

Ho avuto questo problema in precedenza e ho provato tre diverse cose, quindi non sono sicuro di quale sia stato risolto il problema: 1 - Aggiorna il tuo Progetto Maven con aggiornamento forzato o istantanee/rilascio 2 - Riavvia la tua Spring Tool Suite 3 - Esegui comando Maven clean. Spero che questo aiuti. – Bruno

+0

Se esiste una singola classe contenente un main, non è necessaria perché verrà rilevata automaticamente. Assicurati che il progetto sia stato aggiunto come progetto maven e non che lo hai importato come normale progetto java. –

3

pulsante destro del mouse sul progetto -> Maven -> Aggiornamento Progetto

quindi controllare "Forza aggiornamento di istantanee/Uscite"

+1

Non ha funzionato – kamal

+0

Nel mio caso, è stata la causa principale – hiropon

7

cambiare la versione di avvio primavera genitore

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.4.2.RELEASE</version> 
</parent> 
+1

Ho trascorso 2 ore su questo. Hai fatto la mia giornata. – Xelian

+0

Potrebbe essere utile precisare che è necessario impostare l'ultima versione di Spring Boot. Questo è stupido, ma ho dovuto controllare la versione di Spring Boot nella domanda solo per essere sicuro che si trattava di aggiornare la versione e non di un problema con una versione specifica di SB, perché la risposta non spiega cosa c'è che non va .. . – Carrm

0

Ho avuto lo stesso problema quando stavo cercando di lavorare con un avvio di avvio di base ap p. Ho provato a utilizzare l'ultima versione di avvio a molla dal spring-boot site ufficiale.

Come oggi, l'ultima versione è 1.5.4.RELEASE. Ma continuo a ricevere problemi di compilazione sul mio IDE eclissi, indipendentemente da più pulizie del progetto. Ho abbassato la versione di spring-boot a 1.5.3.RELEASE e semplicemente ha funzionato !! Alcuni dei miei progetti precedenti utilizzavano la vecchia versione che mi ha spinto a provare questa opzione.

2

Dal tuo pom.xml, prova a rimuovere le voci dell'archivio di primavera, per impostazione predefinita verrà scaricato dal repository Maven. Ho provato con 1.5.6.RELEASE e ho funzionato molto bene.

0

Ho riscontrato lo stesso problema durante la mia prima applicazione di avvio Spring.

In esercitazione ho potuto vedere in seguito dipendenza per avviare un'applicazione di esempio

  • Primavera Boot 1.4.2.STAMPA
  • Maven 3
  • java 8

ho fatto lo stesso, la mia primavera STS sta riconoscendo tutte le classi, ma quando sto annotazione mia classe principale con @SpringBootApplication non è riconoscere questa classe, mentre ho potuto vedere jar era disponibile nel percorso di classe.

ho seguito per risolvere i problemi

  • sostituito il mio primavera Boot 1.4.2.RELEASE a 1.5.3.RELEASE
  • Fare clic destro sul progetto e -> Maven-> Scarica Risorse
  • fare clic destro sul progetto -> Maven-> Aggiornamento progetto

Dopo che ha funzionato.

Grazie

0

Se il passo di seguito non funziona:

sostituito il mio Boot 1.4.2.RELEASE primavera per 1.5.10.RELEASE

  • Fare clic destro sul progetto e -> Maven- > Risorse Scarica
  • tasto destro del mouse sul progetto -> Maven-> Aggiornamento progetto

Il motivo di questo errore potrebbe essere la versione multipla dello stesso che viene scaricata nella cartella del repository locale di maven.

in modo da seguire i passaggi qui sotto per cancellare tutti i vasetti repository esistenti e scaricare tutta dall'inizio sulla base di dipendenze definite nel pom.xml ..

  1. Vai a costruire il percorso. Controlla Repository Maven nella sezione aggiunta alle librerie.
  2. Scegli qualsiasi jar e mousehover .. mostrerà il percorso del repository locale. generalmente è: utente/.m2/repository/....
  3. Vai alla posizione. e rimuovere la cartella del repository contiene.
  4. Ora fai clic destro sul tuo progetto .. fai Maven -> aggiornamento maven.
    Questo risolverà il problema delle dipendenze. mentre Maven proverà a scaricare di nuovo tutti gli elementi dal repository e a costruire il progetto.