Groovy's XmlSlurper kullanarak Maven's pom.xml dosyasını ayrıştırmaya ve değiştirmeye çalışıyorum. Benim pom.xml ad alanı xsi'yi bildirir. aşağıdaki gibitag0 ad alanı varsayılan ad alanındaki öğeler için eklendi
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>a-group-id</groupId>
<artifactId>an-artifact-id</artifactId>
Benim Groovy kaynağıdır: Fark gibi
import groovy.xml.XmlUtil
def pom = new XmlSlurper().parse('pom.xml')
.declareNamespace('': 'http://maven.apache.org/POM/4.0.0',
xsi: 'http://www.w3.org/2001/XMLSchema-instance')
//manipulate the pom
println XmlUtil.serialize(pom)
, ben ilk ad olarak boş ilan ettik. Ancak çıktı etiketinde0 her yere eklenir.
<?xml version="1.0" encoding="UTF-8"?>
<tag0:project xmlns:tag0="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<tag0:modelVersion>4.0.0</tag0:modelVersion>
<tag0:groupId>a-group-id</tag0:groupId>
<tag0:artifactId>an-artifact-id</tag0:artifactId>
Bundan nasıl korunulur?
an için benim geçici çözüm elle etiketleri kaldırıyor:println XmlUtil.serialize(pom).replaceAll('tag0:', '').replaceAll(':tag0', '')
'XmlSlurper' ismini isimsiz olarak oluşturmak tanrıya yeterince destek veriyor mu? yani: println XmlUtil.serialize (yeni XmlSlurper (false, false) .parse ('pom.xml')) '? –
Vay, evet, bu zaten yeterliydi, teşekkürler Tim. bir cevap olarak sağlayabilir misiniz? Ayrıca, XML'deki tüm yorumların kaybolduğunu fark ettim, bunun için herhangi bir geçici çözüm biliyor musunuz? BTW, burada [pomRm] (http://www.stefanolocati.it/blog/?p=1226) ve [pomVersions] yazdığım iki araç var (http://www.stefanolocati.it/blog/?p= 1220 kişi). – stivlo
Şu anda yorumları nasıl tutacağınızı göremiyor musunuz: ... (Bu öğleden sonra boş bir an olsun diye düşüneceğim ... –