Skip to content

Latest commit

 

History

History
44 lines (44 loc) · 1.71 KB

merge-description.md

File metadata and controls

44 lines (44 loc) · 1.71 KB

Как работает merge

Тул мержа рекурсивно объединяет идентичные элементы, обновляя(заменяя) значения атрибутов и обновляя и дополняя дочерние элементы Идентичными считаются элементы, у которых совпадают: tagName, значение аттрибута 'name' и порядковый номер в родителе

Пример

parent.xml:

<module name="RootModule">
    <module name="OuterModule">
        <module name="Check">
            <property name="property-name" value="value-unchanged"/>
        </module>
        <module name="Check">
            <property name="property-name" value="value-parent"/>
        </module>
    </module>
</module>

child.xml:

<module name="RootModule">
    <property name="hh-parent-config" value="../shared-checkstyle.xml"/>
    <module name="OuterModule">
        <module name="Check"/>
        <module name="Check">
            <property name="property-name" value="value-child"/>
        </module>
    </module>
</module>

result.xml:

<module name="RootModule">
    <module name="OuterModule">
        <module name="Check">
            <property name="property-name" value="value-unchanged"/>
        </module>
        <module name="Check">
            <property name="property-name" value="value-child"/>
        </module>
    </module>
</module>

з.ы. Тул мержа убирает все пустые текстовые ноды(отступы) з.з.ы. Тул мержа можно написать и получше, но мне было некогда, так что ограничился mvp