【发布时间】:2018-07-13 15:12:59
【问题描述】:
我在测试我的应用程序时遇到了这个问题,mvn 测试不会运行,并且特别是在具有 Lombok 的 @Getter @Setter 注释的属性处产生编译问题。 IDE 中没有突出显示错误,因为 Intelij 插件有效,但不知何故 maven 无法找到 Lombok。我看过与我的问题相似的帖子,但它们都有不同版本的 maven / lombok / maven-compiler。我的版本是 Maven - 3.5 ,Maven 编译器 - 3.7 ,Lombok 1.16.20。
我的带有 lombok 注释的 Java 类
@JsonProperty
@Getter @Setter private String name;
@JsonProperty
@Getter @Setter private String catType;
@JsonProperty
@Getter @Setter private String description;
@JsonProperty
@Getter @Setter private String intType;
@JsonProperty
@Getter @Setter private String numberCode;
当我运行 mvn install 我得到 p>
> [my-path]/my-java.java:[86,29] cannot find symbol
[ERROR] symbol: method numberCode()
[ERROR] location: variable source of type My-java
[my-path]/my-java.java:[86,29] cannot find symbol
[ERROR] symbol: method name()
[ERROR] location: variable source of type My-java
[my-path]/my-java.java:[86,29] cannot find symbol
[ERROR] symbol: method catType()
[ERROR] location: variable source of type My-java
[my-path]/my-java.java:[86,29] cannot find symbol
[ERROR] symbol: method description()
[ERROR] location: variable source of type My-java
这是我的 Pom.xml(因为这是一个非常冗长的 pom.xml,我只分享了在这个问题的上下文中可能重要的内容)
<lombok.version>1.18.0</lombok.version>
<maven-clean-plugin.version>2.6.1</maven-clean-plugin.version>
<maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
<maven-eclipse-plugin.version>2.10</maven-eclipse-plugin.version>
<maven-enforcer-plugin.version>3.0.0-M1</maven-enforcer-plugin.version>
<maven-resources-plugin.version>3.0.1</maven-resources-plugin.version>
<maven-surefire-plugin.version>2.18.1</maven-surefire-plugin.version>
<maven.version>3.0.0</maven.version>
<java.version>1.8</java.version>
<scala.version>2.12.1</scala.version>
<node.version>v8.9.4</node.version>
<yarn.version>v1.3.2</yarn.version>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
【问题讨论】:
-
请给你的 POM 做广告。
-
您使用的是什么 IDE?还想知道,lombok 插件是否安装在您的 IDE 中(不仅作为 pom.xml 中的依赖项)。
-
Maven 不提供编译器,它依赖于 javac。提供你的 pom 来分析你的问题。
-
你还有什么做注解处理的吗?
-
@MahiTejGvp 如果您使用最新版本的 mapstruct,它应该无缝集成,无需手动指定注释处理器路径。