- java/
- Java Eclipse自定义程序构建链--添加源文件
Java Eclipse自定义程序构建链--添加源文件
Java Eclipse自定义程序构建链--添加源文件,java,android,eclipse,build-process,Java,Android,Eclipse,Build Process,我正在用Java为Android开发一个相当大的软件(使用Eclipse和ADT)
为了支持我的开发,我制作了一个自己的命令行工具,可以执行以下操作:
加载和处理某些Java文件(来自我开发的软件项目)
将newJava文件输出到特定文件夹(因此输入文件也会保留)到我的项目中
命令行工具所做的并不相关,它的输出仅仅是标准Java代码(即,它是一个代码生成器)
我希望在构建过程中自动调用此命令行工具。换句话说,我希望当我完成手动编码并开始构建过程时(例如,通过单击“运行…”),会发生以下情况:
命
我正在用Java为Android开发一个相当大的软件(使用Eclipse和ADT)
为了支持我的开发,我制作了一个自己的命令行工具,可以执行以下操作:
加载和处理某些Java文件(来自我开发的软件项目)
将newJava文件输出到特定文件夹(因此输入文件也会保留)到我的项目中
命令行工具所做的并不相关,它的输出仅仅是标准Java代码(即,它是一个代码生成器)
我希望在构建过程中自动调用此命令行工具。换句话说,我希望当我完成手动编码并开始构建过程时(例如,通过单击“运行…”),会发生以下情况:
命令行工具正在运行
由命令行工具生成的文件也包含在构建中(即,它们的编译方式与在Eclipse项目中手动添加和编码的方式完全相同)
我非常确定我必须将此程序作为“程序”通过添加到项目的生成器列表中(请参见随附的屏幕截图)。我的问题是:
放在什么位置?应该是第一个吗
为了满足上述要求,我还需要做什么我担心如果命令行工具只是将.java文件写入文件夹,Eclipse将看不到新生成的文件(因为它们没有添加到其项目文件中)
您所处的轨道是正确的,在以下条件下,它可以正常工作:
- 构建器必须位于顶部,以便在Java构建器运行之前修改源文件
- 必须将Java文件生成到项目的一个现有“src”路径中。Java文件未在项目中注册,因此如果您将某些内容放入项目的源文件夹中,它将被编译。像xtext和xtend这样的Eclipse工具的工作方式是相同的
- 必须激活生成器的刷新选项。否则,工作区将不知道您创建了文件(因为您的程序使用java.io.File操作,从而绕过工作区API获取资源)
您走的是正确的道路,在以下条件下,它可以正常工作:
- 构建器必须位于顶部,以便在Java构建器运行之前修改源文件
- 必须将Java文件生成到项目的一个现有“src”路径中。Java文件未在项目中注册,因此如果您将某些内容放入项目的源文件夹中,它将被编译。像xtext和xtend这样的Eclipse工具的工作方式是相同的
- 必须激活生成器的刷新选项。否则,工作区将不知道您创建了文件(因为您的程序使用java.io.File操作,从而绕过工作区API获取资源)
非常感谢您提供完整且非常有用的信息。控制台程序是否有办法影响整个构建过程的成功?我的意思是,有没有一种方法会导致构建失败(例如,如果我的代码生成器遇到错误),或者它是完全解耦的呢?Eclipse构建器没有整体失败/成功这样的事情。每个构建器只会对资源更改做出反应,并尝试对其进行处理,而不依赖于任何其他构建器。然而,您可以很容易地生成一些导致编译错误的Java代码(例如,将错误消息逐字打印到生成的Java文件中),或者根本无法生成代码(如果“正常”代码取决于您的代码,编译也会失败)。非常感谢您提供的完整且非常有用的信息。控制台程序是否有办法影响整个构建过程的成功?我的意思是,有没有一种方法会导致构建失败(例如,如果我的代码生成器遇到错误),或者它是完全解耦的呢?Eclipse构建器没有整体失败/成功这样的事情。每个构建器只会对资源更改做出反应,并尝试对其进行处理,而不依赖于任何其他构建器。然而,您可以很容易地生成一些导致编译错误的Java代码(例如,将错误消息逐字打印到生成的Java文件中),或者根本不生成代码(如果“正常”代码取决于您的代码,编译也会失败)。