Не удается найти символ с компиляцией Maven, включающей тег и аннотацию Lombok - PullRequest
1 голос
/ 29 октября 2019

У меня есть проект 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. Но методы XXX.java вызываются в каком-то классе из package_a:

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

Я пытался создать jar другого пакета <include>**/package_b/*</include>, где Package_b не включает в себя классы с аннотациями lombok и не ссылается на классы с ними,И это успешно. Так что я думаю, может ли это быть связано с поведением Ломбок. Компиляция так или иначе основана на необработанных файлах Java, потому что delombok происходит только с файлами Java, включенными в плагин компиляции. Имеет ли lombok совместимый с плагином компиляции тег?

Я пробовал следующий обходной путь, и код может компилироваться с обоими. Тем не менее, компиляция все занимает больше времени, чем ожидалось.

  1. Удалите тег include из плагина maven compile. Таким образом, все классы скомпилированы.

  2. Деломбок в дочернем модуле выполняется следующим образом. Сохраняет тег includes в плагине maven compile. 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...