我有一个 ant 构建文件,它通常在完全不同的环境中运行。默认情况下,我正在寻找与使用相同的行为:
ant -q
但是,由于某些团队成员的配置不同,因此在每个人的环境中指定 -q 选项并不容易以统一的方式完成(有些人从 eclipse 运行 ant,有些从命令行运行,有些从调试/分析工具运行,等等。每个都有不同的方法来指定 ant 参数,如 -q)
所以我正在寻找一种方法让 ant 文件安静地调用自身...
如下所示是理想的:
<target name="default">
<antcall quiet="yes" target="build" /> <!-- doesn't work -->
</target>
任何人都可以想办法完成这样的事情吗?我所追求的只是让构建在运行默认目标时安静地运行,无论是否设置了 -q。
最佳答案
一个选项可能是从目标中设置日志记录级别。
您可以通过一个简短的脚本任务来访问记录器。比如:
<target ... >
<script language="javascript">
var logger = project.getBuildListeners( ).firstElement( );
logger.setMessageOutputLevel( 0 );
</script>
...
</target>
我不熟悉 Eclipse 如何调用 Ant,但可能有必要遍历所有构建监听器以全面“静默”。
建议无论您最终如何执行此操作,都可以轻松切换回详细运行。
编辑 - 对评论的回应: 您可以使用 project.getProperty()
从脚本中访问项目属性:
<property name="verboseFlag" value="1" />
<script language="javascript">
var logger = project.getBuildListeners().firstElement();
var verboseMode = project.getProperty( "verboseFlag" )
if ( ! "1".equals( verboseMode ) )
logger.setMessageOutputLevel( 0 );
</script>
(有点旧)API docs are here ,包括 project
class .
https://stackoverflow.com/questions/5462732/
相关文章:
macos - 如何在 Mac OS X 上将 OpenSSL 构建为 32 位 (i386)?
swift - 我可以使用 Swift 包管理器制作本地模块吗?
xcode - 命令 CompileAssetCatalog 失败,退出代码为非零
android - 如何在 MonoDevelop 中编译 MonoDroid App 时修复 "O
android - Gradle:构建Android库后如何运行自定义任务?
.net - 是否有显示所有属性名称/值的 NAnt 任务?