org.springframework.boot.web.support不存在

我正在将构建系统从Maven更改为Gradle,以进行Spring Boot项目。我得到这个堆栈跟踪

19:03:08: Executing external task 'bootRun'...

/home/dac/proj/spring-boot-master/spring-boot-samples/spring-boot-sample-jetty-jsp/src/main/java/sample/jetty/jsp/SampleJettyJspApplication.java:22: error: package org.springframework.boot.web.support does not exist

import org.springframework.boot.web.support.SpringBootServletInitializer;

^

/home/dac/proj/spring-boot-master/spring-boot-samples/spring-boot-sample-jetty-jsp/src/main/java/sample/jetty/jsp/SampleJettyJspApplication.java:25: error: cannot find symbol

public class SampleJettyJspApplication extends SpringBootServletInitializer {

^

symbol: class SpringBootServletInitializer

/home/dac/proj/spring-boot-master/spring-boot-samples/spring-boot-sample-jetty-jsp/src/main/java/sample/jetty/jsp/SampleJettyJspApplication.java:27: error: method does not override or implement a method from a supertype

@Override

^

3 errors

:compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:

Execution failed for task ':compileJava'.

> Compilation failed; see the compiler error output for details.

* Try:

Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 2.334 secs

Compilation failed; see the compiler error output for details.

19:03:10: External task execution finished 'bootRun'.

我的 build.gradle

buildscript {

repositories {

mavenCentral()

}

dependencies {

classpath "org.springframework.boot:spring-boot-gradle-plugin:1.3.6.RELEASE"

classpath 'org.springframework:springloaded:1.2.5.RELEASE'

}

}

apply plugin: 'java'

apply plugin: 'eclipse'

apply plugin: 'idea'

apply plugin: 'spring-boot'

apply plugin: 'rebel'

buildscript {

repositories {

mavenCentral()

}

dependencies {

classpath group: 'org.zeroturnaround', name: 'gradle-jrebel-plugin', version: '1.1.3'

}

}

jar {

baseName = 'gs-spring-boot'

version = '0.1.0'

}

repositories {

mavenCentral()

}

sourceCompatibility = 1.8

targetCompatibility = 1.8

dependencies {

// tag::jetty[]

compile("org.springframework.boot:spring-boot-starter-web") {

exclude module: "spring-boot-starter-tomcat"

}

compile("org.springframework.boot:spring-boot-starter-jetty")

// end::jetty[]

// tag::actuator[]

compile("org.springframework.boot:spring-boot-starter-actuator")

testCompile("org.springframework.boot:spring-boot-starter-test")

testCompile("junit:junit")

}

// change default IntelliJ output directory for compiling classes

idea {

module {

inheritOutputDirs = false

outputDir = file("$buildDir/classes/main/")

}

}

task wrapper(type: Wrapper) {

gradleVersion = '2.3'

}

我的 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>

<parent>

<!-- Your own application should inherit from spring-boot-starter-parent -->

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-samples</artifactId>

<version>1.4.0.BUILD-SNAPSHOT</version>

</parent>

<artifactId>spring-boot-sample-jetty-jsp</artifactId>

<packaging>war</packaging>

<name>Spring Boot Jetty JSP Sample</name>

<description>Spring Boot Jetty JSP Sample</description>

<url>http://projects.spring.io/spring-boot/</url>

<organization>

<name>Pivotal Software, Inc.</name>

<url>http://www.spring.io</url>

</organization>

<properties>

<main.basedir>${basedir}/../..</main.basedir>

<m2eclipse.wtp.contextRoot>/</m2eclipse.wtp.contextRoot>

</properties>

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

<exclusions>

<exclusion>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-tomcat</artifactId>

</exclusion>

</exclusions>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-validation</artifactId>

<exclusions>

<exclusion>

<groupId>org.apache.tomcat.embed</groupId>

<artifactId>tomcat-embed-el</artifactId>

</exclusion>

</exclusions>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-jetty</artifactId>

<!--<scope>provided</scope>-->

</dependency>

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>jstl</artifactId>

</dependency>

<dependency>

<groupId>org.eclipse.jetty</groupId>

<artifactId>apache-jsp</artifactId>

<!--<scope>provided</scope>-->

</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>

<configuration>

<executable>true</executable>

</configuration>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-surefire-plugin</artifactId>

<configuration>

<useSystemClassLoader>false</useSystemClassLoader>

</configuration>

</plugin>

</plugins>

</build>

</project>

我应该如何使包裹可供使用?

回答:

这可能是源代码中的导入问题-您的Gradle构建脚本使用Spring Boot

1.3.6.RELEASE,其中SpringBootServletInitializer具有以下完全限定的名称:

org.springframework.boot.context.web.SpringBootServletInitializer

但是,您的Maven pom.xml使用Spring Boot 1.4.0.BUILD-SNAPSHOT,其中包名称已更改为:

org.springframework.boot.web.support.SpringBootServletInitializer

因此,如果您转到SampleJettyJspApplication并将导入更改为

import org.springframework.boot.context.web.SpringBootServletInitializer;

一切都应该没问题。

另外,您可以更改Gradle构建脚本以导入1.4.0.BUILD-SNAPSHOT,但这需要添加Spring的快照存储库:

buildscript {

repositories {

maven.url "http://repo.spring.io/snapshot"

mavenCentral()

}

dependencies {

classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.0.BUILD-SNAPSHOT")

}

}

以上是 org.springframework.boot.web.support不存在 的全部内容, 来源链接: utcz.com/qa/422585.html

回到顶部