如何了解在Eclipse中开发的Java项目中哪些是自动生成的文件?
我是新手。例如,一点一点,我发现使用xcore
插件生成了许多文件。其他与xtend
。只要遍历代码并尝试我正在学习,就可以了。问题是:是否有办法了解要修改哪些文件以自动重新生成其他文件?我的错误是开始手动修改所有文件。
答案 0 :(得分:4)
通常,您为代码和生成的代码设置不同的源目录。
例如,使用Xtend和EMF的项目在其构建路径中将具有以下源目录:
src
包含您编写的所有Java和Xtend文件xtend-gen
包含由Xtend创建的生成的Java文件src-gen
包含由EMF创建的生成的Java文件在此设置中,您仅应编辑src
中的文件。如果您在xtend-gen
中编辑Xtend文件,src
中的文件将自动更新。如果您重新生成模型,则src-gen
中的文件将被更新。
我对Xcore不太熟悉,但是由于它是基于EMF的,我认为您只需要设置genmodel的“模型目录”属性即可。
这应该使您的代码与生成的代码之间的区别更加清晰。有时您仍然可能需要修改生成的代码。 EMF实际上通过在生成的文件中添加特殊注释来支持此操作,但是我不建议这样做,因为很难查看文件是否已通过这种方式修改。如果确实需要更改生成的行为,则此article about properly overriding generated EMF code中描述的第一种方法更好。基本上,您可以扩展和覆盖某些生成的类和工厂的方法,然后使用Eclipse扩展点将扩展的工厂替换为生成的工厂。
如果您正在查看其他人的项目,但不知道使用了哪些代码生成工具:
您应该尝试向作者询问是否可能,或者检查是否有任何有关构建项目的文档。否则,我猜您将需要分析项目结构,以查看用于生成代码的插件。如果您尚不知道哪些插件实际上可以 生成代码,则可能会有些困难。
@Generated
批注,该批注用于标记生成的文件如果已标识所有工具,请尝试更改模型目标目录并重新生成代码。然后将生成的文件与原始代码进行比较-可能会生成所有重复的文件。