我目前正在开发一个大型java项目,其中有很多子模块由不同的团队处理。其中一些团队正在构建“框架”,其他团队正在构建基于框架的“应用程序”。
当框架人员移动或重命名一个类时,应用程序人员无论在哪里使用重构的框架类都会遇到编译错误。是否有一种方法可以在 Eclipse ( Galileo Release )中记录更改并更新其他工作区中的引用?
到目前为止我尝试过的是在重命名重构期间创建重构脚本,但是当我尝试将该脚本应用到另一个工作区时,它会失败并显示The refactoring 'Rename Type' (org.eclipse.jdt.ui.rename.type) cannot be performed, since its input 'xxx.TestClass" does not exists
。好吧,它不存在(不再)好了,但我想要的是将我项目中xxx.TestClass
的所有引用都更改为xxx.MyRenamedTestClass
。有没有办法在Eclipse中使用内置功能或现有插件来完成此操作,还是我必须自己编写一个?
感谢您的帮助!
编辑:到目前为止,我发现“Migrate JAR”-Plugin提供了我正在寻找的功能,尽管我们使用Maven而不是Eclipse构建JAR。我现在要查看源代码,找出可以重用的部分。答案 0 :(得分:1)
在这里回答我自己的问题以获得一些关闭。
最简单的方法是使用Migrate JAR File...
重构,该重构使用名为META-INF
的{{1}}中的重构脚本。您可以使用Eclipse中的REFACTORINGS.XML
自动获取包含此内容的JAR。我们使用Maven构建,因此只需Export JAR
并将其放入JAR中的适当位置。
Migrate JAR执行的JDT内部代码为临时源文件夹中的源类创建Stub,因此它实际上先执行重构,然后更新引用。用户永远不会看到这些临时文件。