КлассNotFoundException генерируется в плагине, который я разработал. Класс, который не может быть founf определенно существует, и связанный с ним проект включен в зависимости в файле pom.xml Исполнит проект следующим образом:Отладка ClassNotFoundException бросает мой Maven Mojo при использовании @requiresDependencyResolution в Mojo
<dependency>
<groupId>com.example</groupId>
<artifactId>project-one</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
Моего плагин включена выполняющей pom.xml следующим образом:
<build>
<plugins>
<plugin>
<groupId>com.example</groupId>
<artifactId>project-two-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<configuration>
<customSettingOne>
setting
</customSettingOne>
</configuration>
<phase>prepare-package</phase>
<goals>
<goal>some-task</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Мой класс плагин следующим образом:
/**
* @goal some-task
*
* @requiresDependencyResolution compile
*/
public class MyPluginMojo extends AbstractMojo {
/**
* Directory to save the CSV files to.
*
* @parameter alias="customSettingOne"
* @required
*/
private File customSettingOne;
}
Я попробовал этот код с помощью:
Apache Maven 2.2.1 (r801777; 2009-08-06 20:16:01+0100)
и встроенная версия используется Eclipse, m2e
Embedded (3.0.2/1.0.200.20111228-1245
Я получаю ClassNotFoundException, когда мой код плагина пытался загрузить класс из ProjectOne.
У кого-нибудь есть идеи, как я могу разобраться в этом? Можно ли проверять или выгружать путь к классам, который используется в плагине?
Спасибо! Документация помогла: в частности, раздел 3. – auser
Руководство по загрузке классов maven3: https://cwiki.apache.org/confluence/display/MAVEN/Maven+3.x+Class+Loading –