为什么Gradle 在此示例中编译失败?
Why Gradle compilation fails in this example?
我正在看书 Introducing Spring Framework,我卡在了第一个例子上。我以前从未使用过 Gradle。不知何故,编译器不理解我的代码中使用的注释。尽管我在 gradle.build
文件中使用了 spring 依赖项。
为了完整起见,我将 post 此示例中的所有 4 个文件。
build.gradle:
apply plugin: 'java'
apply plugin: 'application'
mainClassName = System.getProperty("mainClass")
repositories {
mavenCentral()
}
dependencies {
compile 'org.springframework:spring-context:4.0.5.RELEASE'
}
MessageService.java:
package com.apress.isf.spring;
public interface MessageService {
public String getMessage();
}
HelloWorldMessage.java:
package com.apress.isf.spring;
public class HelloWorldMessage implements MessageService {
public String getMessage(){
return "Hello World";
}
}
Application.java:
package com.apress.isf.spring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
@Configuration
@ComponentScan
public class Application {
@Bean
MessageService helloWorldMessageService() {
return new HelloWorldMessage();
}
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(Application.class);
MessageService service = context.getBean(MessageService.class);
System.out.println(service.getMessage());
}
}
I 运行 示例:
gradle run -DmainClass=com.apress.isf.spring.Application
使用 Ubuntu.
结果是:
~/src/main/java/com/apress/isf/spring/Application.java:7: error: cannot find symbol
@Configuration
^
symbol: class Configuration
~/src/main/java/com/apress/isf/spring/Application.java:8: error: cannot find symbol
@ComponentScan
^
symbol: class ComponentScan
2 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: 5.025 secs
谁能帮我 运行 举这个例子?问候。
我认为您在应用程序顶部缺少 Configuration 和 ComponentScan 的导入语句 class:
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
我正在看书 Introducing Spring Framework,我卡在了第一个例子上。我以前从未使用过 Gradle。不知何故,编译器不理解我的代码中使用的注释。尽管我在 gradle.build
文件中使用了 spring 依赖项。
为了完整起见,我将 post 此示例中的所有 4 个文件。
build.gradle:
apply plugin: 'java'
apply plugin: 'application'
mainClassName = System.getProperty("mainClass")
repositories {
mavenCentral()
}
dependencies {
compile 'org.springframework:spring-context:4.0.5.RELEASE'
}
MessageService.java:
package com.apress.isf.spring;
public interface MessageService {
public String getMessage();
}
HelloWorldMessage.java:
package com.apress.isf.spring;
public class HelloWorldMessage implements MessageService {
public String getMessage(){
return "Hello World";
}
}
Application.java:
package com.apress.isf.spring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
@Configuration
@ComponentScan
public class Application {
@Bean
MessageService helloWorldMessageService() {
return new HelloWorldMessage();
}
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(Application.class);
MessageService service = context.getBean(MessageService.class);
System.out.println(service.getMessage());
}
}
I 运行 示例:
gradle run -DmainClass=com.apress.isf.spring.Application
使用 Ubuntu.
结果是:
~/src/main/java/com/apress/isf/spring/Application.java:7: error: cannot find symbol
@Configuration
^
symbol: class Configuration
~/src/main/java/com/apress/isf/spring/Application.java:8: error: cannot find symbol
@ComponentScan
^
symbol: class ComponentScan
2 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: 5.025 secs
谁能帮我 运行 举这个例子?问候。
我认为您在应用程序顶部缺少 Configuration 和 ComponentScan 的导入语句 class:
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;