2011-09-09 29 views
1

我正在寫一個maven插件,需要獲取另一個java項目的類路徑。我想知道是否有可能從我當前的java項目中獲得另一個java項目的類路徑? 在此先感謝如何獲得另一個java項目的classpath?

+1

獲取「另一個java項目的類路徑」在Maven中沒有意義。描述你真正想做什麼(即*你需要什麼*信息,以及*你打算怎麼做)。 – parsifal

回答

1

如果「另一個Java項目」是指「那declears插件項目」,這裏就是我的回答:

你需要從插件創建新的類加載器:

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使用相同的技巧來生成項目註釋類的映射

相關問題