Как мне получить classpath другого Java-проекта? - PullRequest
1 голос
/ 09 сентября 2011

Я сейчас пишу плагин maven и мне нужно получить путь к классу другого Java-проекта.Я хотел бы знать, возможно ли получить classpath другого Java-проекта из моего текущего Java-проекта?Заранее спасибо

1 Ответ

1 голос
/ 24 апреля 2012

если «другой проект Java» означает «проект, который объявляет ваш плагин», вот мой ответ:

вам нужно создать новый загрузчик классов из плагина:

List classpathElements = project.getCompileClasspathElements();
classpathElements.add( project.getBuild().getOutputDirectory() );
classpathElements.add( project.getBuild().getTestOutputDirectory() );
URL urls[] = new URL[classpathElements.size()];
for ( int i = 0; i < classpathElements.size(); ++i ) {
  urls[i] = new File( (String) classpathElements.get( i ) ).toURL();
}
return new URLClassLoader( urls, this.getClass().getClassLoader() );

с новымзагрузчик классов, вы можете сделать что-то (загрузка класса, отражение, генерация кода) с классами проекта

hibernate3-maven-plugin использовать тот же трюк для генерации сопоставления из аннотированных классов проекта

...