Почему использование точки для разделения слов является соглашением для целевых имен в файле сборки Ant? - PullRequest
4 голосов
/ 13 февраля 2010

Я никогда не понимал этого, так как атрибут имени, кажется, поддерживает пробелы, но каждый пример использует труднее читать период для имен целей.

Зачем это делать:

<target name="some.target.name">
<!-- target child nodes -->
</target>

Когда вы можете сделать это:

<target name="Some Target Name">
<!-- target child nodes -->
</target>

Была ли какая-то причина для этого, или это техническое ограничение? То же самое касается свойств сборки. Они всегда используют некоторые точечные обозначения.

Ответы [ 2 ]

9 голосов
/ 13 февраля 2010

Одной из причин может быть то, что проще указать цель сборки в командной строке, если в ней нет пробелов. С пробелами вы должны заключать в кавычки все имя цели.

6 голосов
/ 13 февраля 2010

если в имени цели есть пробелы, вам нужно будет заключить их в кавычки из командной строки, иначе процессор будет обрабатывать их как несколько целей.

Попробуйте это: build.xml:

<project name="MyProject" default="some target name" basedir=".">
  <target name="some target name">
    <echo>reached some target name with spaces</echo>
  </target>
  <target name="some">
    <echo>reached some</echo>
  </target>
  <target name="target">
    <echo>reached target </echo>
  </target>
  <target name="name">
    <echo>reached name</echo>
  </target>
</project>

работает ant some target name с пробелами, вы получаете следующее:

Buildfile: build.xml

some:
     [echo] reached some

target:
     [echo] reached target 

name:
     [echo] reached name

BUILD SUCCESSFUL
Total time: 0 seconds

но с кавычками это обрабатывается по-другому: ant "some target name"

Buildfile: build.xml

some target name:
     [echo] reached some target name with spaces
...