В моем POM у меня есть эта зависимость
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>0.10.0-RC1</version>
<scope>provided</scope>
</dependency>
</dependencies>
Теперь я пытаюсь использовать это в плагине Maven exec следующим образом:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<id>delombok-source</id>
<phase>generate-sources</phase>
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>java</executable>
<arguments>
<argument>-classpath</argument>
<classpath>
<dependency>org.projectlombok:lombok</dependency>
</classpath>
<argument>lombok.core.Main</argument>
<argument>delombok</argument>
<argument>src/main/java</argument>
<argument>-d</argument>
<argument>target/src-delomboked</argument>
</arguments>
</configuration>
</plugin>
Но каждый раз, когда я выполняю exec:exec
, я получаю ошибку «java.lang.NoClassDefFoundError: lombok / core / Main».Некоторое тестирование показало, что это потому, что зависимость объявлена в предоставленной области действия
Почему плагин exec не может использовать предоставленные зависимости?Во-вторых, может ли плагин exec использовать эту зависимость, не изменяя область действия зависимости?