Я также опубликовал этот вопрос в группе пользователей.
Это ответ, который я получил.
guice-3.0-no_deps.jar - это артефакт времени сборки, который используется для компиляции расширений, но не требуется во время выполнения - он не в maven central, потому что команда Guice не хотела, чтобы люди зависели от этого «uber». -жар "по ошибке. Расширения имеют необязательную зависимость от guice-3.0-no_deps.jar (чтобы их можно было компилировать), но они также имеют необязательную зависимость от guice-3.0.jar для случая времени выполнения.
Надлежащим образом подключаемые модули maven должны видеть, что зависимость no_deps является необязательной, и не генерировать ошибку сборки, если она отсутствует, так что это похоже на ошибку в плагине Jetty. Чтобы обойти ошибку 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>
Обратите внимание, что мы не можем сделать это в исходной сборке, потому что нам все еще нужна зависимость no_deps при выполнении исходной компиляции.