无法通过Maven编译找到包含标签和Lombok注释的符号

时间:2019-10-29 14:43:01

标签: java maven lombok

我有一个带有多个Maven模块的Maven项目。某些类带有lombok批注。我尝试只用一个类子集打包jar文件。我的Maven编译配置如下所示。 https://maven.apache.org/plugins/maven-jar-plugin/examples/include-exclude.html

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <version>3.1.2</version>
  <configuration>
    <includes>
      <include>**/package_a/*</include>
    </includes>
   </configuration>
</plugin>

我看到以下错误消息,其中XXX.java不是package_a的一部分。但是在package_a的某个类中调用了XXX.java的方法:

[ERROR] C:/..src dir../XXX.java :[123,45] cannot find symbol. 
[ERROR] symbol:   method [setter name here]

我试图创建另一个软件包<include>**/package_b/*</include>的jar,其中Package_b既不包含带有lombok批注的类,也不使用它们引用类。这是成功的。所以我想这是否可能与龙目岛行为有关。编译以某种方式基于原始Java文件,因为delombok仅在编译插件中包含的Java文件上发生。 lombok是否与compile插件兼容,包括tag?

我尝试了以下解决方法,并且代码都可以同时进行编译。但是,编译所需的时间比预期的要长。

  1. 删除maven编译插件中的includes标记。因此,所有类都已编译。

  2. 子模块中的
  3. Delombok如下。在Maven编译插件中保留includes标签。 http://anthonywhitford.com/lombok.maven/lombok-maven-plugin/usage.html

<sourceDirectory>target/generated-sources/delombok</sourceDirectory>
<build>
  <plugins>
    <plugin>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok-maven-plugin</artifactId>
      <version>1.18.10.0</version>
      <executions>
        <execution>
          <phase>generate-sources</phase>
          <goals>
            <goal>delombok</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

0 个答案:

没有答案