загрузка артефакта guice3.0 из центрального репозитория maven

Я пытаюсь обновить свое веб-приложение struts2 с guice2.0 до guice3.0. Я пытаюсь проверить это, используя maven jetty. Я успешно обновил свой pom.xml, чтобы использовать правильную версию и groupId для выпуска 3.0, но если я вызову mvn jetty:run, я увижу, что он пытается загрузить guice-3.0-no_deps.jar.

который выдает ошибку сборки и не может найти центральный репозиторий?

Я не получаю эту ошибку, если я не включаю расширения guice.

Любые идеи?

Спасибо


person Sumit    schedule 31.05.2011    source источник
comment
Было бы полезно, если бы вы предоставили минимальный файл pom для воспроизведения ошибки.   -  person Heri    schedule 02.06.2011


Ответы (1)


Я разместил этот вопрос также в группе пользователей guice. Это ответ, который я получил.

guice-3.0-no_deps.jar — это артефакт времени сборки, который используется для компиляции расширений, но не требуется во время выполнения — его нет в центре maven, потому что команда Guice не хотела, чтобы люди зависели от этого «uber-jar». по ошибке. Расширения имеют необязательную зависимость от guice-3.0-no_deps.jar (чтобы они могли компилироваться), но они также имеют необязательную зависимость от guice-3.0.jar для случая выполнения.

Плагины maven с хорошим поведением должны видеть, что зависимость no_deps является необязательной, и не выдавать ошибку сборки, если она отсутствует, так что это звучит как ошибка в плагине причала. Чтобы обойти ошибку Jetty, вы можете явно скрыть эту зависимость следующим образом:

    <dependency>
        <groupId>com.google.inject.extensions</groupId>
        <artifactId>guice-struts2</artifactId>
        <version>3.0</version>
        <exclusions>
            <exclusion>
                <groupId>com.google.inject</groupId>
                <artifactId>guice</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>com.google.inject</groupId>
        <artifactId>guice</artifactId>
        <version>3.0</version>
    </dependency>

Обратите внимание, что мы не можем сделать это в оригинальной сборке pom, потому что нам по-прежнему нужна зависимость no_deps при выполнении исходной компиляции.

person Sumit    schedule 02.06.2011