如何获取另一个java项目的类路径?

时间:2011-09-09 10:09:29

标签: java plugins maven project classpath

我现在正在编写一个maven插件,需要获取另一个java项目的类路径。我想知道是否有可能从我当前的java项目中获取另一个java项目的类路径? 提前致谢

1 个答案:

答案 0 :(得分:1)

如果“另一个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使用相同的技巧从项目的带注释的类

生成映射