นี้หลามสคริปต์เล็ก "แพทช์" M2E ที่สร้าง.classpath
ไฟล์และเพิ่มแท็ก XML target/generated-sources
ที่จำเป็นไปยังโฟลเดอร์แหล่งที่มาทั้งหมดเริ่มต้นด้วย คุณสามารถเรียกใช้งานได้จากโฟลเดอร์รูทของโปรเจ็กต์ เห็นได้ชัดว่าคุณต้องรันใหม่เมื่อข้อมูลโปรเจ็กต์ Eclipse ถูกสร้างขึ้นใหม่จาก M2E และทั้งหมดนี้เป็นความเสี่ยงของคุณเองแน่นอน ;-)
#!/usr/bin/env python
from xml.dom.minidom import parse
import glob
import os
print('Reading .classpath files...')
for root, dirs, files in os.walk('.'):
for name in files:
if (name == '.classpath'):
classpathFile = os.path.join(root, name)
print('Patching file:' + classpathFile)
classpathDOM = parse(classpathFile)
classPathEntries = classpathDOM.getElementsByTagName('classpathentry')
for classPathEntry in classPathEntries:
if classPathEntry.attributes["path"].value.startswith('target/generated-sources'):
# ensure that the <attributes> tag exists
attributesNode = None;
for attributes in classPathEntry.childNodes:
if (attributes.nodeName == 'attributes'):
attributesNode = attributes
if (attributesNode == None):
attributesNode = classpathDOM.createElement('attributes')
classPathEntry.appendChild(attributesNode)
# search if the 'ignore_optional_problems' entry exists
hasBeenSet = 0
for node in attributesNode.childNodes:
if (node.nodeName == 'attribute' and node.getAttribute('name') == 'ignore_optional_problems'):
# it exists, make sure its value is true
node.setAttribute('value','true')
#print(node.getAttribute('name'))
hasBeenSet = 1
if (not(hasBeenSet)):
# it does not exist, add it
x = classpathDOM.createElement("attribute")
x.setAttribute('name','ignore_optional_problems')
x.setAttribute('value','true')
attributesNode.appendChild(x)
try:
f = open(classpathFile, "w")
classpathDOM.writexml(f)
print('Writing file:' + classpathFile)
finally:
f.close()
print('Done.')