Простой:
if("string")
оценивается как булев. Любое значение, которое не является false
, равно true
, никакого преобразования в число или что-либо в этом роде.
Сравнение "string"
с логическим значением true
, очевидно, даст false
.
Управление зависимостями позволяет консолидировать и централизовать управление версиями зависимостей без добавления зависимостей, которые наследуются всеми дочерними элементами. Это особенно полезно, когда у вас есть набор проектов (то есть более одного), который наследует общего родителя.
Другой чрезвычайно важный вариант использования dependencyManagement
- это управление версиями артефактов, используемых в транзитивных зависимостях. Это сложно объяснить без примера. К счастью, это показано в документации.
Различие между этими двумя лучше всего вводится в то, что кажется необходимым и достаточным определением dependencyManagement элемента, доступного в документах веб-сайта Знатока:
dependencyManagement
"Информация о зависимостях по умолчанию для проектов, которые наследовались от этого. Зависимости в этом разделе сразу не разрешены. Вместо этого когда АНГЛИЧАНИН, полученный от этого, объявляет зависимость, описанную соответствием groupId и artifactId, версия и другие значения от этого раздела используются для той зависимости, если они не были уже указаны". [ https://maven.apache.org/ref/3.6.1/maven-model/maven.html ]
Это должно быть считано наряду с еще некоторой информацией, доступной на другой странице:
“.. минимальный набор информации для соответствия ссылке зависимостей против раздела dependencyManagement на самом деле {groupId, artifactId, введите, классификатор}. Во многих случаях эти зависимости будут относиться к артефактам банки без классификатора. Это позволяет нам стенографии набор идентификационных данных к {groupId, artifactId}, так как значение по умолчанию для поля типа является банкой, и классификатор по умолчанию является пустым. ” [ https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html ]
Таким образом, все подэлементы (объем, исключения и т.д.) элемента зависимости - кроме groupId, artifactId, вводит, классификатор, не только, версия - доступна для блокировки/значения по умолчанию в точке (и таким образом наследованный оттуда вперед) Вы указываете зависимость в dependencyElement. Если you’d указал зависимость с типом и подэлементами классификатора (см. сначала процитированную веб-страницу для проверки всех подэлементов) как не банка и не пустая соответственно, you’d потребность {groupId, artifactId, классификатор, вводит} к ссылке (твердость) что зависимость в любой точке в наследовании, происходящем из dependencyManagement элемента. Еще, {groupId, artifactId} был бы достаточен, не намереваетесь ли Вы переопределить значения по умолчанию для классификатора и типа (банка и пустой указатель соответственно). Таким образом, значение по умолчанию является хорошим ключевым словом в том определении; любой подэлемент (подэлементы) (кроме groupId, artifactId, классификатора и типа, конечно) явно присвоенное значение (значения) в точке, Вы ссылаетесь на зависимость, переопределяет значения по умолчанию в dependencyManagement элементе.
Так, любой элемент зависимости за пределами dependencyManagement, разрешено ли как ссылка на некоторый dependencyManagement элемент или поскольку автономное сразу (т.е. установлено на локальном репозитории и доступное для путей к классам).
Только в моих собственных словах, Ваш parent-project
помогает Вам обеспечить 2 вида зависимостей:
<dependencies>
раздел в Вашем parent-project
, наследованы весь child-projects
child-projects
. Таким образом Вы используете эти <dependencyManagement>
раздел, для объявления всех зависимостей, которые Вы собираетесь использовать в своем различном child-projects
. Самая важная вещь состоит в том, что в этом разделе Вы определяете <version>
так, чтобы Вы не объявляли это снова в Вашем child-project
. <dependencyManagement>
в моей точке зрения (исправляют меня, если я неправ) просто полезно, помогая Вам централизовать версию Ваших зависимостей. Это похоже на своего рода функцию помощника.
Как вы и сказали, dependencyManagement
используется для сбора всей информации о зависимостях в общий POM файл, упрощая ссылки в дочернем POM файле.
Это становится полезным, когда у вас есть несколько атрибутов, которые вы не хотите набирать заново в нескольких дочерних проектах.
Наконец, dependencyManagement
можно использовать для определения стандартной версии артефакта для использования в нескольких проектах.