Groovy: невозможно загрузить класс CTAnchor из-за отсутствия зависимости CTPosH - PullRequest
0 голосов
/ 16 мая 2018

Я использую Idea, и вот мой bulid.gradle

dependencies {
compile project(":signer-core")
compile 'org.codehaus.groovy:groovy-all:2.4.8'
def poi_version = "3.17"
compile "org.apache.poi:poi:${poi_version}"
compile "org.apache.poi:poi-ooxml:${poi_version}"
compile "org.apache.poi:poi-ooxml-schemas:${poi_version}"
compile "org.apache.santuario:xmlsec:2.1.0"
testCompile "junit:junit:4.12"
}

Когда я компилирую этот код в * .groovy, который я создал:

    private  CTAnchor getAnchorWithGraphic(CTDrawing drawing /*inline drawing*/,
                                       String drawingDescr, boolean behind) throws Exception {

    CTGraphicalObject graphicalobject = drawing.getInlineArray(0).graphic
    long width = drawing.getInlineArray(0).getExtent().getCx()
    long height = drawing.getInlineArray(0).getExtent().getCy()

    String anchorXML =
            "<wp:anchor xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" "
    +"simplePos=\"0\" relativeHeight=\"0\" behindDoc=\""+((behind)?1:0)+"\" locked=\"0\" layoutInCell=\"1\""
    +"allowOverlap=\"1\">"
    +"<wp:simplePos x=\"0\" y=\"0\"/>"
    +"<wp:positionH relativeFrom=\"column\"><wp:posOffset>0</wp:posOffset></wp:positionH>"
    +"<wp:positionV relativeFrom=\"paragraph\"><wp:posOffset>0</wp:posOffset></wp:positionV>"
    +"<wp:extent cx=\""+width+"\" cy=\""+height+"\"/>"
    +"<wp:effectExtent l=\"0\" t=\"0\" r=\"0\" b=\"0\"/><wp:wrapNone/>"
    +"<wp:docPr id=\"1\" name=\"Drawing 0\" descr=\""+drawingDescr+"\"/><wp:cNvGraphicFramePr/>"
    +"</wp:anchor>"

    drawing = CTDrawing.Factory.parse(anchorXML)
    CTAnchor anchor = drawing.getAnchorArray(0)

    anchor.setGraphic(graphicalobject)
    return anchor
}

Получены некоторые ошибки:

Ошибка: Groovyc: при компиляции signer-office_main: java.lang.RuntimeException: java.lang.NoClassDefFoundError: Невозможно загрузить класс org.openxmlformats.schemas.drawingml.x2006.wordprocessingDchoring.TAnк отсутствующей зависимости org / openxmlformats / schemas / drawingml / x2006 / wordprocessingDrawing / CTPosH

Но код может работать в * .java, который я создал.И я захожу в CTAnchor.class , чтобы проверить CTPosH , он действительно не может найти объявление для перехода.Но это самая последняя версия apache poi .

enter image description here

...