Eclipse – 记录并应用移动并将重构重命名为另一个工作区
我目前正在开发一个大型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中是否有办法使用内置function或现有插件来完成此操作,还是我必须自己编写一个?
谢谢你的帮助!
编辑:到现在为止我发现“Migrate JAR”-Plugin提供了我正在寻找的function,虽然我们用Maven而不是Eclipse构建我们的JAR。 我现在要查看源代码,找出可以重用的部分。
回答我自己的问题来解决这个问题。
最简单的方法是使用Migrate JAR File...
重构,它使用META-INF
的重构脚本REFACTORINGS.XML
。 您可以使用Eclipse中的Export JAR
自动获取包含此Export JAR
。 我们使用Maven构建,因此只需执行Refactoring->Create Script...
并将其放入JAR中的适当位置。
迁移JAR执行的JDT内部代码为临时源文件夹中的源类创建Stub,因此它实际上先执行重构,然后更新引用。 用户永远不会看到这些临时文件。
- 启动Jetty服务器时扫描条目“module-info.class”时出错
- JUnit插件测试忽略目标平台
- 如何在Eclipse中创建可运行的JAR,就像在Eclipse中一样
- 注释上的自定义Eclipse警告
- 如何在Eclipse中调试透视图中的当前执行行
- SonarQube测试用例规则不会将Eclipse的@Test注释考虑在内
- 编辑器在Eclipse中不包含主类型
- 线程“main”中的exceptionorg.eclipse.swt.SWTError:swt.mozilla中的XPCOM错误0x80004005
- eclipse中的Maven错误(pom.xml):无法转移org.apache.maven.plugins:maven-surefire-plugin:pom:2.12.4