2

SCons 新手在这里。我正在使用它(2.0版)来创建一个jar,如下所示:

compiled_classes = env.Java \
                   (target = compiled_classes_dir, 
                    source = source_tld, 
                    JAVAVERSION='1.6',
                    JAVACLASSPATH=['source_tld/libs/' + 
                                   file.name 
                                   for file in 
                                   Glob('source_tld/' +
                                   'libs/*.jar')])

new_jar = env.Jar(target = jar_name,
                  source = compiled_classes_dir)

我看到一个问题,其中属于具有内部类的类的类文件(当编译成类文件时$名称中有一个)没有得到正确处理,即它们没有包含在生成的 JAR 中。任何解决此问题的建议将不胜感激。TIA。

PS:这个添加的建议JAVAVERSION似乎没有帮助。

4

1 回答 1

0

由于 SCons 不正确地计算输出类,我建议使用这种解决方法。

compiled_classes = env.Java \
                   (target = compiled_classes_dir, 
                    source = source_tld, 
                    JAVAVERSION='1.6',
                    JAVACLASSPATH=['source_tld/libs/' + 
                                   file.name 
                                   for file in 
                                   Glob('source_tld/' +
                                   'libs/*.jar')])
#workaround to make sure classes are cleaned
env.Clean(compiled_classes, env.Dir(compiled_classes_dir))

# its important to set the JARCHDIR or the Jar command will not be run
# from the correct location if you want an executable Jar add the manifest here  
new_jar = env.Jar(target = jar_name,
                  source = [compiled_classes_dir], JARCHDIR='$SOURCE')
于 2014-05-22T19:22:00.943 回答