0
0 Комментариев

Доброго времени суток, прошу помощи/совета по такому вопросу: имеется локальный репозиторий( по сути обычная папка на диске), в нем лежит родительский pom.xml и несколько подпапок дочерних модулей в каждой из которых также лежит свой pom.xml. Все помники связаны между собой и изменение версии модуля в корневом pom.xml, например с <version-api>1.0</version-api> на <version-api>2.0</version-api> влечет за собой необходимость изменять эту версию в каждом дочернем помнике, в котором она упоминается, что приходится делать вручную. Т.е. нужно чтобы скрипт анализировал каждый xml в корневой директории и поддиректориях, и при обнаружении тега <version-api> менял значение в нем та тоже что и в корневом помнике. На текущий момент получилось реализовать изменение значения версии только в корневом pom.xml, как поменять версию по всем остальным xml в подпапках не знаю.

PythonВыделить код

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<span class="kw1">import</span> <span class="kw3">xml</span>.<span class="me1">dom</span>.<span class="me1">minidom</span>
<span class="kw1">import</span> <span class="kw3">xml</span>.<span class="me1">etree</span>.<span class="me1">ElementTree</span> <span class="kw1">as</span> ET
<span class="kw1">import</span> <span class="kw3">os</span>
<span class="kw1">import</span> <span class="kw3">sys</span>
dom <span class="sy0">=</span> <span class="kw3">xml</span>.<span class="me1">dom</span>.<span class="me1">minidom</span>.<span class="me1">parse</span><span class="br0">(</span><span class="st0">"pom.xml"</span><span class="br0">)</span><span class="sy0">;</span>
dom.<span class="me1">normalize</span><span class="br0">(</span><span class="br0">)</span>
version<span class="sy0">=</span>dom.<span class="me1">getElementsByTagName</span><span class="br0">(</span><span class="st0">"version-api"</span><span class="br0">)</span><span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span>
 
<span class="kw1">print</span><span class="br0">(</span><span class="st0">"name="</span>+version.<span class="me1">nodeName</span><span class="br0">)</span>
<span class="kw1">print</span><span class="br0">(</span><span class="st0">"value="</span>+version.<span class="me1">childNodes</span><span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span>.<span class="me1">nodeValue</span><span class="br0">)</span>
a<span class="sy0">=</span><span class="kw2">str</span><span class="br0">(</span><span class="kw2">input</span><span class="br0">(</span><span class="st0">"Введите название артефакта:"</span><span class="br0">)</span><span class="br0">)</span>
<span class="kw1">print</span><span class="br0">(</span>a<span class="br0">)</span>
b<span class="sy0">=</span><span class="kw2">str</span><span class="br0">(</span><span class="kw2">input</span><span class="br0">(</span><span class="st0">"Введите версию артефакта:"</span><span class="br0">)</span><span class="br0">)</span>
<span class="kw1">print</span><span class="br0">(</span>b<span class="br0">)</span>
tree <span class="sy0">=</span> ET.<span class="me1">parse</span><span class="br0">(</span><span class="st0">'pom.xml'</span><span class="br0">)</span>
root <span class="sy0">=</span> tree.<span class="me1">getroot</span><span class="br0">(</span><span class="br0">)</span>
<span class="kw1">for</span> elem <span class="kw1">in</span> root.<span class="kw2">iter</span><span class="br0">(</span>a<span class="br0">)</span>:
    elem.<span class="me1">text</span> <span class="sy0">=</span> <span class="br0">(</span>b<span class="br0">)</span>
tree.<span class="me1">write</span><span class="br0">(</span><span class="st0">'pom.xml'</span><span class="br0">)</span>
node2<span class="sy0">=</span>dom.<span class="me1">getElementsByTagName</span><span class="br0">(</span><span class="st0">"node2"</span><span class="br0">)</span><span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span>
<span class="kw1">print</span><span class="br0">(</span><span class="st0">"name="</span>+version.<span class="me1">nodeName</span><span class="br0">)</span>
<span class="kw1">print</span><span class="br0">(</span><span class="st0">"value="</span>+version.<span class="me1">childNodes</span><span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span>.<span class="me1">nodeValue</span><span class="br0">)</span>

Добавить комментарий