运行 来自 SCONS 的 ANT 脚本
Running an ANT script from SCONS
是否可以从 scons 运行 一个特定的 ant 脚本?
例如运行从命令行运行这个脚本
/usr/local/bin/ant release -f /Users/dev/pic/src/platform/android/java/build.xml
有没有可能在scons中成功运行?我试试这个:
env.Command('local.properties', [], "/usr/local/bin/ant release -f /Users/dev/pic/src/platform/android/java/build.xml")
但是失败了,因为它没有输出具有正确 SDK 位置的 local.properties 文件
BUILD FAILED
/Users/dev/pic/src/platform/android/java/build.xml:55: sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable.
但这些变量是正确的。有没有办法使用 scons 来克服这个障碍?
这取决于您想要执行的方式和时间ant
,但是确实可以。
如果想在每次SCons
执行时都执行这个ant
脚本,那么可以使用SCons Execute()函数,如下:
env.Execute("/usr/local/bin/ant release -f /Users/dev/pic/src/platform/android/java/build.xml")
每次都会执行,没有 target/source 依赖性检查。
如果您只想在某个目标已过期时执行此 ant 脚本,请按如下方式使用 SCons Command() 函数:
env.Command(target='local.properties',
source='/Users/dev/pic/src/platform/android/java/build.xml',
action='/usr/local/bin/ant release -f $SOURCE')
我不确定源文件和目标文件是否正确,您可能需要修复它。
请注意 SCons
仅适用于 sources 和 targets 位于或低于 SCons
项目目录层次结构。所述层次结构的根是 SConstruct
脚本所在的位置。
是否可以从 scons 运行 一个特定的 ant 脚本?
例如运行从命令行运行这个脚本
/usr/local/bin/ant release -f /Users/dev/pic/src/platform/android/java/build.xml
有没有可能在scons中成功运行?我试试这个:
env.Command('local.properties', [], "/usr/local/bin/ant release -f /Users/dev/pic/src/platform/android/java/build.xml")
但是失败了,因为它没有输出具有正确 SDK 位置的 local.properties 文件
BUILD FAILED
/Users/dev/pic/src/platform/android/java/build.xml:55: sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable.
但这些变量是正确的。有没有办法使用 scons 来克服这个障碍?
这取决于您想要执行的方式和时间ant
,但是确实可以。
如果想在每次SCons
执行时都执行这个ant
脚本,那么可以使用SCons Execute()函数,如下:
env.Execute("/usr/local/bin/ant release -f /Users/dev/pic/src/platform/android/java/build.xml")
每次都会执行,没有 target/source 依赖性检查。
如果您只想在某个目标已过期时执行此 ant 脚本,请按如下方式使用 SCons Command() 函数:
env.Command(target='local.properties',
source='/Users/dev/pic/src/platform/android/java/build.xml',
action='/usr/local/bin/ant release -f $SOURCE')
我不确定源文件和目标文件是否正确,您可能需要修复它。
请注意 SCons
仅适用于 sources 和 targets 位于或低于 SCons
项目目录层次结构。所述层次结构的根是 SConstruct
脚本所在的位置。