Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse中自动生成的java文件_Java_Eclipse_Xtend_Ecore_Xcore - Fatal编程技术网

Eclipse中自动生成的java文件

Eclipse中自动生成的java文件,java,eclipse,xtend,ecore,xcore,Java,Eclipse,Xtend,Ecore,Xcore,如何理解在Eclipse中开发的大型Java项目中哪些是自动生成的文件 我是个新手。例如,渐渐地,我发现许多文件是通过使用xcore插件生成的。其他带有xtend。只是通过代码和尝试,我正在学习,这没关系。问题是:有没有办法了解要修改哪些文件以自动重新生成其他文件?我的错误是开始手动修改所有文件。通常为代码和生成的代码设置不同的源目录 例如,使用Xtend和EMF的项目在其构建路径中会有以下源目录: src包含您编写的所有Java和Xtend文件 xtend gen包含由xtend创建的生成的

如何理解在Eclipse中开发的大型Java项目中哪些是自动生成的文件


我是个新手。例如,渐渐地,我发现许多文件是通过使用
xcore
插件生成的。其他带有
xtend
。只是通过代码和尝试,我正在学习,这没关系。问题是:有没有办法了解要修改哪些文件以自动重新生成其他文件?我的错误是开始手动修改所有文件。

通常为代码和生成的代码设置不同的源目录

例如,使用Xtend和EMF的项目在其构建路径中会有以下源目录:

  • src
    包含您编写的所有Java和Xtend文件
  • xtend gen
    包含由xtend创建的生成的Java文件
  • src gen
    包含由EMF创建的生成的Java文件
在此设置中,您应该只在
src
中编辑文件。如果在
src
中编辑xtend文件,则
xtend gen
中的文件将自动更新。如果重新生成模型,
src gen
中的文件将被更新

我对Xcore不太熟悉,但因为它是基于EMF的,所以我认为您只需要设置genmodel的“model directory”属性

这将使您的代码和生成的代码之间的区别更加清晰。有时您可能仍然觉得需要修改生成的代码。EMF实际上通过在生成的文件中添加特殊注释来支持这一点,但我不建议这样做,因为很难看到文件是否以这种方式修改过。如果您确实需要更改生成的行为,那么本文中描述的第一种方法会更好。基本上,您可以扩展并覆盖一些生成的类和工厂的方法,然后使用Eclipse扩展点将生成的工厂替换为扩展工厂


如果您正在查看其他人的项目,但不知道使用了哪些代码生成工具:

如果可能的话,您应该试着询问作者,或者检查是否有关于构建项目的文档。否则,我想您需要分析项目结构,以查看哪些插件用于生成代码。如果您还不知道哪些插件可以生成代码,那么这可能有点困难

  • 检查Eclipse“项目性质”以查看用于构建的插件
  • 检查构建配置(Ant、Maven、Gradle)中是否有可能生成代码的插件
  • 查找特殊文件(xcore、genmodel等)并找出要保存的文件
  • 检查是否配置了任何注释处理器,并检查它们是否创建了任何文件
  • (仅限Xtend)检查是否存在活动注释,并检查它们是否创建了任何文件
  • 检查代码中是否使用了
    @Generated
    注释,该注释用于标记生成的文件

如果已识别所有工具,则尝试更改模型目标目录并重新生成代码。然后将生成的文件与原始代码进行比较-可能会生成所有重复的文件。

通常,您会为代码和生成的代码设置不同的源目录

例如,使用Xtend和EMF的项目在其构建路径中会有以下源目录:

  • src
    包含您编写的所有Java和Xtend文件
  • xtend gen
    包含由xtend创建的生成的Java文件
  • src gen
    包含由EMF创建的生成的Java文件
在此设置中,您应该只在
src
中编辑文件。如果在
src
中编辑xtend文件,则
xtend gen
中的文件将自动更新。如果重新生成模型,
src gen
中的文件将被更新

我对Xcore不太熟悉,但因为它是基于EMF的,所以我认为您只需要设置genmodel的“model directory”属性

这将使您的代码和生成的代码之间的区别更加清晰。有时您可能仍然觉得需要修改生成的代码。EMF实际上通过在生成的文件中添加特殊注释来支持这一点,但我不建议这样做,因为很难看到文件是否以这种方式修改过。如果您确实需要更改生成的行为,那么本文中描述的第一种方法会更好。基本上,您可以扩展并覆盖一些生成的类和工厂的方法,然后使用Eclipse扩展点将生成的工厂替换为扩展工厂


如果您正在查看其他人的项目,但不知道使用了哪些代码生成工具:

如果可能的话,您应该试着询问作者,或者检查是否有关于构建项目的文档。否则,我想您需要分析项目结构,以查看哪些插件用于生成代码。如果您还不知道哪些插件可以生成代码,那么这可能有点困难

  • 检查Eclipse“项目性质”以查看用于构建的插件
  • 检查构建配置(Ant、Maven、Gradle)中是否有可能生成代码的插件
  • 查找特殊文件(xcore、genmodel等)并找出要保存的文件
  • 检查是否配置了任何注释处理器,并检查它们是否创建了任何文件
  • (仅限Xtend)检查是否存在活动注释,并检查它们是否创建了任何文件
  • 检查代码中是否使用了
    @Generated
    注释,该注释用于标记生成的文件
如果已识别所有工具,则尝试更改模型目标目录并重新生成代码。然后将生成的文件与原始代码进行比较-可能会生成所有重复的文件