什么Maven依赖使用Swagger与DropWizard 0.7.0

时间:2014-06-25 18:35:10

标签: java rest maven swagger dropwizard

我有一个现有的dropwizard 0.7.0服务,我想用Swagger记录。我正在使用来自https://github.com/wordnik/swagger-core/wiki/JavaDropwizard-Quickstart

的swagger的followind依赖项
<dependency>
  <groupId>com.wordnik</groupId>
  <artifactId>swagger-jaxrs_2.10</artifactId>
  <version>1.3.0</version>
</dependency>

然而,当我添加该依赖项时,我收到以下错误:

java.lang.NoClassDefFoundError: com/google/common/collect/FluentIterable
    at com.fasterxml.jackson.datatype.guava.GuavaTypeModifier.modifyType(GuavaTypeModifier.java:38)

以下帖子很有帮助,但我的问题是依赖关系。 How to use swagger with dropwizard .0.7.0

我的POM应该包含什么?我的dropwizard依赖是:

<dependency>
    <groupId>io.dropwizard</groupId>
    <artifactId>dropwizard-core</artifactId>
    <version>0.7.0</version>
</dependency>

谢谢

4 个答案:

答案 0 :(得分:1)

试试这个 -

    <dependency>
        <groupId>com.wordnik</groupId>
        <artifactId>swagger-jaxrs_2.10</artifactId>
        <version>1.3.5</version>
        <exclusions>
            <exclusion>
                <artifactId>jackson-jaxrs-json-provider</artifactId>
                <groupId>com.fasterxml.jackson.jaxrs</groupId>
            </exclusion>
            <exclusion>
                <artifactId>commons-lang</artifactId>
                <groupId>commons-lang</groupId>
            </exclusion>
            <exclusion>
                <artifactId>slf4j-api</artifactId>
                <groupId>org.slf4j</groupId>
            </exclusion>
            <exclusion>
                <artifactId>jackson-annotations</artifactId>
                <groupId>com.fasterxml.jackson.core</groupId>
            </exclusion>
            <exclusion>
                <artifactId>paranamer</artifactId>
                <groupId>com.thoughtworks.paranamer</groupId>
            </exclusion>
            <exclusion>
                <artifactId>jackson-databind</artifactId>
                <groupId>com.fasterxml.jackson.core</groupId>
            </exclusion>
            <exclusion>
                <artifactId>guava</artifactId>
                <groupId>com.google.guava</groupId>
            </exclusion>
            <exclusion>
                <artifactId>javassist</artifactId>
                <groupId>org.javassist</groupId>
            </exclusion>
            <exclusion>
                <artifactId>joda-time</artifactId>
                <groupId>joda-time</groupId>
            </exclusion>
            <exclusion>
                <artifactId>jackson-core</artifactId>
                <groupId>com.fasterxml.jackson.core</groupId>
            </exclusion>
        </exclusions>
    </dependency>

答案 1 :(得分:0)

您需要在运行时使用guava库,因此请添加

<dependency>
 <groupId>com.google.guava</groupId>
 <artifactId>guava</artifactId>
 <version>17.0</version>
</dependency>

答案 2 :(得分:0)

对于swagger规范2.0,请在此处查看更新的示例:

https://github.com/swagger-api/swagger-core/tree/develop_2.0/samples/java-dropwizard

它有一个更新的应用程序类,用于1.5.1-M1 swagger-core。

答案 3 :(得分:0)

使用dropwizard-swagger

查看Swagger的GitHub页面中的Version Matrix。它包括:

dropwizard-swagger  Dropwizard  Swagger API     Swagger UI
----------------------------------------------------------
< 0.5               0.7.x       1.3.2           ?
0.5.x               0.7.x       1.3.12          v2.1.4-M1
0.6.x               0.8.0       1.3.12          v2.1.4-M1
0.7.x               0.8.0       1.5.1-M2        v2.1.4-M1

在您的情况下,您只需要:

<dependency>
    <groupId>com.federecio</groupId>
    <artifactId>dropwizard-swagger</artifactId>
    <version>0.4</version>
</dependency>