У меня есть файл settings.xml как
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
https://maven.apache.org/xsd/settings-1.0.0.xsd">
<pluginGroups>
<pluginGroup>org.mortbay.jetty</pluginGroup>
</pluginGroups>
<servers>
<server>
<id>server001</id>
<username>my_login</username>
<password>my_password</password>
<privateKey>${user.home}/.ssh/id_dsa</privateKey>
<passphrase>some_passphrase</passphrase>
<filePermissions>664</filePermissions>
<directoryPermissions>775</directoryPermissions>
<configuration></configuration>
</server>
</servers>
</settings>
Как видно, данные прокси отсутствуют.Я хотел бы добавить данные с помощью Perl: Twig.Я не могу использовать другие CPAN-модули, так как я не поддерживаю распространение perl.
Я прочитал perl doc на ветке , но я запутался в процессе вставки.Я также прочитал эту ссылку Perl , эту ссылку SO , где используется сравнение / копия XML (здесь не имеет значения, потому что я не сравниваю).Также я читаю ТАК дочерний веточку, добавляющий , но я думаю, что хочу создать тег.Это Итак, ссылка объясняет , как использовать XML :: DOM, но я ограничен Perl: Twig, и, наконец, этот SO на XML: Простой , но опять же я ограничен Perl:Twig, а также состояния perldoc не используют XML: Простой.
Мой текущий код выглядит примерно так:
my $t = XML::Twig->new(
twig_roots => { proxy => 1 },
pretty_print => 'indented',
)->parsefile( $maven_Dir . "/" . $settings_File );
if ( !$t->root->children('proxy') ) {
print(
"In your settings.xml located in your .m2 folder,
there appears to be no proxy settings \n"
);
print("Adding Jlab proxy settings \n");
my $cp = $t->root->children('settings');
$cp->insert("proxies");
# $cp->first_child('proxy');
# $cp->paste( 'last_child', $t->root );
}
else {
foreach my $proxy ( $t->root->children('proxy') ) {
my $port = $proxy->first_child_text('port');
my $host = $proxy->first_child_text('host');
my $protocol = $proxy->first_child_text('protocol');
my $active = $proxy->first_child_text('active');
if ( $port == 1492
&& $host eq "jpoop"
&& $protocol eq "http"
&& $active eq "true" )
{
print("Correct proxy settings are set properly for Jlab \n");
print( "$port \n", "$host \n", "$protocol \n",
"$active'\n \n" );
}
}
}
Кто-нибудь укажет мне направление добавления данных, аналогичных
* 1024?*
в файл XML с использованием Perl: Twig?