SCons编译生成的.java文件未检查包归属问题求解决方案
SCons Java文件复制后编译异常:疑似Bug,求临时解决方案或正确用法指引
我确定这是一个SCons的Bug,已经把问题提交到了SCons用户邮件列表,现在来这儿求助——想找个修复完成前能先用的临时解决方案,或者如果这根本不是Bug的话,麻烦告诉我正确的处理方式。
我已经准备了最小复现案例,包含两个核心文件:SConstruct 和 src/Hello/World/HelloWorld.java。
当前运行环境
- Windows 10 操作系统
- SCons 版本 3.0.0
- Python 版本 2.7
复现案例细节
src/Hello/World/HelloWorld.java 代码
package Hello.World; public class HelloWorld { public static void main(String[] args) { System.out.println("Hello from SCons!"); } }
SConstruct 核心逻辑
我的构建脚本里先把源Java文件复制到构建目录,再尝试编译这个复制后的文件,代码大概是这样:
env = Environment() # 将源Java文件复制到build目录下对应路径 env.Copy('build/src/Hello/World/', 'src/Hello/World/HelloWorld.java') # 尝试编译复制后的Java文件到classes目录 env.Java(target='build/classes', source='build/src/Hello/World/HelloWorld.java')
但实际运行SCons时,编译过程抛出了异常,提示找不到对应的包结构或者类文件路径错误。我原本预期SCons能正确识别复制后文件的包结构,生成对应路径的class文件,但结果并不如预期。
有没有大佬遇到过类似的问题?求个临时的解决办法,或者如果我在SCons的用法上有错误,还请不吝赐教!
内容的提问来源于stack exchange,提问作者MatthewM
相关产品推荐
相关产品推荐

