Самый верный ответ правильный, используйте typeof.
Однако я хотел бы отметить, что в JavaScript undefined
изменен (по какой-то нечестивой причине). Таким образом, просто проверка на varName !== undefined
может не всегда возвращаться, как вы ожидаете, потому что другие библиотеки могли быть изменены неопределенно. Несколько ответов (@ skalee's, для одного), похоже, предпочитают не использовать typeof
, и это может вызвать проблемы.
«Старый» способ справиться с этим был объявлением неопределенным как var для компенсировать любое возможное отключение / переключение undefined
. Тем не менее, лучший способ по-прежнему использовать typeof
, поскольку он игнорирует любое переопределение undefined
из другого кода. Особенно, если вы пишете код для использования в дикой природе, где кто знает, что еще может быть запущено на странице ...
, Как я заставляю загрузку Ivy Быть в спящем режиме, но не эти два?
Ivy делает это использование, что это называет "конфигурациями". Ваш ivy.xml
, который представляет, в спящем режиме, должен будет обеспечить, различные конфигурации для представления различных примеров использования для в спящем режиме. (Существует, очевидно, некоторое использование, в спящем режиме, который действительно требует jaas и jacc, но по-видимому Вы не используете тот случай.)
Здесь документация относительно конфигураций. Если Вы хотите обеспечить ivy.xml
, Вы используете для, в спящем режиме, я могу обеспечить указатели при создании конфигураций, которые удалят определенные библиотеки, которые Вы хотите удаленный.
, Если я на самом деле нуждался в них и загрузил их Банки с Sun, в который папка в моей машине Ivy будет искать их?
"каталоги", что плющ заглядывает для файлов плюща и артефактов, указаны списком сопоставителей, которые Вы используете. Список сопоставителей указан в файле настроек плюща (обычно называемый ivysettings.xml
.) Как правило, это не локальные каталоги, но удаленные URL. Существует; однако, тип сопоставителя локального файла, который будет работать на это.
, Если Вы делаете это, необходимо будет обеспечить и файлы плюща и артефакты (банки), каждый с именами файлов, которые соответствуют шаблонам сопоставителей. Детали об этом находятся в документации.
Вот сопоставитель локального файла в качестве примера из файла настроек плюща:
<filesystem name="myfiles" checkconsistency="false" checksums="" transactional="false">
<ivy pattern="/data/repo/[organisation]/[module]-[revision].ivy.xml"/>
<artifact pattern="/data/repo/[organisation]/[module]-[revision].[ext]"/>
</filesystem>
Также примечание, что необходимо будет указать задачи плюща на корректный сопоставитель. Можно сделать это с атрибутом сопоставителя на задачах Ant, или с эти defaultResolver
атрибут на settings
элемент в файле настроек плюща.
Здесь документация относительно сопоставителей.
РЕДАКТИРОВАНИЕ: OP нашел менее разовое интенсивное обходное решение для его определенной исходной проблемы. "Исключить" дочерний тег тега зависимости сделал задание для него:
<dependencies>
<dependency org="org.hibernate" name="hibernate-core" rev="3.3.1.GA" conf='..'>
<exclude name='jaas' />
<exclude name='jacc' />
</dependency>
</dependencies>
Another option for not downloading any dependencies is to disable them with the transitive
attribute. So if you wanted hibernate-core
, but none of its dependencies, you could do this:
<dependencies>
<dependency org="org.hibernate" name="hibernate-core"
rev="3.3.1.GA" conf='..'
transitive="false" />
</dependencies>
Просматривая веб-страницы и блоги, я обнаружил следующие настройки ivy-settings для работы с захватом jaas / jacc и hibernate
<ivysettings>
<settings defaultResolver="chained" checkUpToDate="true" />
<resolvers>
<chain name="chained">
<url name="com.springsource.repository.bundles.release">
<ivy pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
<artifact pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
</url>
<url name="com.springsource.repository.bundles.external">
<ivy pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
<artifact pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
</url>
<ibiblio name="ibiblio" m2compatible="true"/>
<ibiblio name="jboss" root="http://repository.jboss.org/maven2/" m2compatible="true"/>
<ibiblio name="java-net-maven1" root="http://download.java.net/maven/1" pattern="${java.net.maven.pattern}" m2compatible="false"/>
<ibiblio name="java-net-maven2" root="http://download.java.net/maven/2/" m2compatible="true"/>
<ibiblio name="compass" m2compatible="true" root="http://repo.compass-project.org" />
</chain>
</resolvers>
Решатель jboss ibibilio - это то, что помогло захватить JAAS / JAAC
Затем мой ivy.xml может вставить его с помощью
<ivy-module version="2.0">
<info organisation="foo" module="Bar"/>
<dependencies>
<dependency org="com.h2database" name="h2" rev="1.2+"/>
<dependency org="org.hibernate" name="hibernate-annotations" rev="3.4.0.GA"/>
</dependencies>