我正在使用nant 0.85版本。我已经在一个文件中定义了一个属性,并没有指定类似于'只读= true'的属性,但是当我尝试更改属性的值时,我收到警告说属性不能被覆盖。已经尝试设置readonly="false" overwrite="true"
。但似乎没有任何工作。任何帮助,将不胜感激。Nant属性不能被覆盖eventhough没有标记为只读
0
A
回答
9
需要更多的细节,特别是如果你在命令行中的“属性的值更改”。
一两件事,我有看到造成一些混淆的是,当从命令行(-D:prop=value
)重写属性时,并且如果在文件中定义了相同的属性(<property name="prop" value="value"/>
)它会说只读属性不能被覆盖,因为从命令行设置的属性是只读的,并且它不能被文件中定义的属性覆盖。
这不是相反的方式,这会导致一些混淆,人们认为尽管没有readonly
设置为true等仍然说不能被覆盖。
所以试着看看你设置的属性是否实际上使用你想要的值,如果你从命令行覆盖。
3
你可以在NAnt 0.85完全做到这一点。比方说,例如,您有一个名称为“myvalue”的属性,您希望能够从命令行传入该属性。你会先在恶性脚本定义属性是这样的:
<property name="myvalue" value="0" overwrite="false" />
当你调用南特你只需要使用-D参数在新的值传递这样的:
nant.exe buildfile:myfile.build -logfile:mylog.log -D:myvalue=16
而且新的“16”值会在生成脚本的认可,你可以通过简单地呼应这样的值测试:
<echo message="myvalue: ${myvalue}" />
欲了解更多信息,可以阅读文档,并期待在EXA mple “IV”:
http://nant.sourceforge.net/release/0.85/help/tasks/property.html
10
使用除非属性,它的工作原理。
<property name="msbuild.path" value="CONFIGURABLE" unless="${property::exists('msbuild.path')}" />
然后像往常一样恶性-D:msbuild.path = ...
相关问题
- 1. Object.defineProperty覆盖只读属性
- 2. 属性覆盖“...”不能被解析为一个属性上
- 3. 厨师属性没有被覆盖计算属性
- 4. 被覆盖的CSS属性取消或只是覆盖?
- 5. 条件属性被覆盖
- 6. Python属性被覆盖
- 7. 背景属性被剥离?没有被覆盖
- 8. 覆盖属性以使其只能从子类中读取
- 9. 读取覆盖属性属性
- 10. 如何使CSS属性不被覆盖?
- 11. CSS属性被覆盖在IE中只有
- 12. Drupal主题功能没有被覆盖
- 13. 功能没有被覆盖的子类
- 14. 将BaseClass属性更改为DerivedClass中的只读属性并覆盖
- 15. 属性覆盖没有任何影响
- 16. RADEditor元素的CSS属性没有被覆盖
- 17. CSS不能正确覆盖属性
- 18. jQuery addClass没有被覆盖
- 19. Kohana Model_Auth_User_Token没有被覆盖
- 20. filebeat @timestamp没有被覆盖
- 21. jpg没有被ImageIO.write覆盖()
- 22. 抽象静态属性不能被覆盖?
- 23. Nant和更改文件属性(只读为可写)
- 24. 覆盖属性
- 25. 覆盖属性
- 26. 覆盖属性
- 27. 属性覆盖
- 28. 覆盖属性
- 29. 覆盖属性
- 30. onResumeFragments不能被覆盖?
显示一些示例代码,你怎么也覆盖等 – manojlds 2011-05-24 06:18:27
,尝试南特0.90 0.91_alpha,您使用的版本于2006年发布! – skolima 2011-05-24 06:59:32
我没有任何命令行属性。我从Cruisecontrol.net运行这个nant构建。这些属性位于一个文件中,并使用include标签包含这些属性。尽管我没有将这些属性指定为只读,但当它们包含在构建文件中时,它将以只读方式包含在内。然后,我尝试将包含文件的内容移到相同的nant构建文件中。但不知道它在哪里设置属性:(。 – priya 2011-05-26 05:12:42