【发布时间】:2016-06-27 11:09:12
【问题描述】:
我有 Spring-boot 应用程序以及下一个 插件和依赖项:
<!--...-->
<dependency>
<groupId>org.springframework.security.oauth</groupId>
<artifactId>spring-security-oauth2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.8</version>
<scope>provided</scope>
</dependency>
<!--...-->
<build>
<finalName>service-api</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>attached</goal>
</goals>
<configuration>
<descriptors>
<descriptor>service-api.xml</descriptor>
</descriptors>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.alexecollins.docker</groupId>
<artifactId>docker-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
以及用于在我的应用中测试龙目岛的文本 2 类:
import lombok.Data;
@Data
public class TestDto {
private String testStr;
}
和
public class TestCall {
public void testLombok() {
TestDto dto = new TestDto();
dto.setTestStr("My Test String.");
System.out.println(dto);
}
}
所以,当我从插件运行 spring-boot:run 甚至是一个简单的命令 mvn compile 时,我会遇到下一个错误:
[ERROR] 未能执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.1:compile 项目服务 api 上的(默认编译):编译失败: 编译失败:[错误] D:\Projects\??????\service-api\src\main\java\TestCall.java:[7,-1] [错误] 1. 错误 D:\Projects\???????\service-api\src\main\java\TestCall.java (在第 7 行)[ERROR] dto.setTestStr("My Test String."); [错误] ^^^^^^^^^^ [错误] 方法 setTestStr(String) 未定义 键入 TestDto [ERROR] ---------- [ERROR] 1 个问题(1 个错误)[ERROR] [ERROR] 发现 1 个错误和 0 个警告。
似乎 lombok 功能不适用于 spting 插件。 但是,如果我使用标准的 maven-compiler-plugin(版本 3.5.1),一切正常。但是现在我们想使用 spring boot 嵌入式容器,我们还没有准备好改变我们的构建工作流程。 有没有可能解决这个问题?可能我应该包含一些特殊的依赖项或类似的东西吗?
【问题讨论】:
-
通过start.spring.io 生成了一个全新的启动 (web + lombok) maven 项目,并在其中放入了一个简单的 lombok 数据类,它工作得很好。 gist.github.com/zapl/1d238b278b8cc68e330e4bf1048943a8 是生成的 pom(未修改)和 java 源(添加了数据类),
spring-boot:run按预期打印“hello”。 -
问题是我有一个带有 groovy-eclipse-compiler 插件的父 pom。所以我在这个主题中找到了如何为 lombok 配置它:stackoverflow.com/questions/8524891/…
标签: java spring-boot lombok