springfox: Springfox data rest: Failed to start bean 'documentationPluginsBootstrapper'

  • Version: 2.9.2

  • Type: Question.

Hello,

I’ve been using springfox swagger with the normal JPA repositories. I’ve now included a repository which uses spring data rest. In order to have it show in the swagger ui, I required springfox-data-rest. I’ve also added @Import(SpringDataRestConfiguration.class) to my swagger configuration class.

Here is the full stacktrace:


org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NoSuchMethodError: org.springframework.data.repository.support.Repositories.getRepositoryInformationFor(Ljava/lang/Class;)Lorg/springframework/data/repository/core/RepositoryInformation;
	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:184) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
	at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:52) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
	at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
	at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:157) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
	at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:121) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:885) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:161) ~[spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:553) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140) ~[spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) [spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395) [spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:327) [spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1255) [spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1243) [spring-boot-2.0.3.RELEASE.jar:2.0.3.RELEASE]
	at com.nwidart.techvideo.TechVideoApplication.main(TechVideoApplication.java:16) [classes/:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
	at java.base/java.lang.reflect.Method.invoke(Method.java:564) ~[na:na]
	at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) [spring-boot-devtools-2.0.3.RELEASE.jar:2.0.3.RELEASE]
Caused by: java.lang.NoSuchMethodError: org.springframework.data.repository.support.Repositories.getRepositoryInformationFor(Ljava/lang/Class;)Lorg/springframework/data/repository/core/RepositoryInformation;
	at springfox.documentation.spring.data.rest.EntityServicesProvider.requestHandlers(EntityServicesProvider.java:81) ~[springfox-data-rest-2.9.2.jar:null]
	at springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper$2.apply(DocumentationPluginsBootstrapper.java:138) ~[springfox-spring-web-2.9.2.jar:null]
	at springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper$2.apply(DocumentationPluginsBootstrapper.java:135) ~[springfox-spring-web-2.9.2.jar:null]
	at com.google.common.collect.Iterators$8.transform(Iterators.java:794) ~[guava-jdk5-17.0.jar:na]
	at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48) ~[guava-jdk5-17.0.jar:na]
	at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48) ~[guava-jdk5-17.0.jar:na]
	at com.google.common.collect.Iterators$5.hasNext(Iterators.java:543) ~[guava-jdk5-17.0.jar:na]
	at com.google.common.collect.ImmutableCollection$Builder.addAll(ImmutableCollection.java:300) ~[guava-jdk5-17.0.jar:na]
	at com.google.common.collect.ImmutableList$Builder.addAll(ImmutableList.java:691) ~[guava-jdk5-17.0.jar:na]
	at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:275) ~[guava-jdk5-17.0.jar:na]
	at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:226) ~[guava-jdk5-17.0.jar:na]
	at com.google.common.collect.FluentIterable.toList(FluentIterable.java:334) ~[guava-jdk5-17.0.jar:na]
	at springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper.defaultContextBuilder(DocumentationPluginsBootstrapper.java:111) ~[springfox-spring-web-2.9.2.jar:null]
	at springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper.buildContext(DocumentationPluginsBootstrapper.java:96) ~[springfox-spring-web-2.9.2.jar:null]
	at springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper.start(DocumentationPluginsBootstrapper.java:167) ~[springfox-spring-web-2.9.2.jar:null]
	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:181) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
	... 19 common frames omitted

Relevant pom:

    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>2.9.2</version>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
      <version>2.9.2</version>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-data-rest</artifactId>
      <version>2.9.2</version>
    </dependency>

My swagger configuration class:

package com.nwidart.techvideo.config;

import java.time.LocalDate;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.Profile;
import org.springframework.http.ResponseEntity;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.data.rest.configuration.SpringDataRestConfiguration;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
@Profile("!tests")
@Import(SpringDataRestConfiguration.class)
public class SwaggerConfiguration {

  @Bean
  public Docket mainConfig() {
    return new Docket(DocumentationType.SWAGGER_2)
        .select().apis(RequestHandlerSelectors.any())
        .paths(PathSelectors.regex("/api/.*"))
        .build()
        .apiInfo(apiInfo())
        .directModelSubstitute(LocalDate.class, String.class)
        .genericModelSubstitutes(ResponseEntity.class);
  }

  private ApiInfo apiInfo() {
    return new ApiInfoBuilder()
        .title("Tech Video")
        .description("Manage tech learning sessions")
        .version("1.0")
        .contact(new Contact("Nicolas Widart", "https://nicolaswidart.com", "n.widart@gmail.com"))
        .build();
  }
}

I’ve looked through the docs but couldn’t find a lot of information on springfox data rest.

Thanks!

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Reactions: 10
  • Comments: 50 (6 by maintainers)

Most upvoted comments

@simbro I’ve done this:

	<dependency>
		<groupId>io.springfox</groupId>
		<artifactId>springfox-swagger2</artifactId>
		<version>3.0.0-SNAPSHOT</version>
	</dependency>
	<dependency>
		<groupId>io.springfox</groupId>
		<artifactId>springfox-data-rest</artifactId>
		<version>3.0.0-SNAPSHOT</version>
	</dependency>
	<dependency>
		<groupId>io.springfox</groupId>
		<artifactId>springfox-swagger-ui</artifactId>
		<version>2.9.2</version>
	</dependency>

    <repositories>
	<repository>
		<id>jcenter-snapshots</id>
		<name>jcenter</name>
		<url>http://oss.jfrog.org/artifactory/oss-snapshot-local/</url>
	</repository>
</repositories>`

With: @EnableSwagger2WebMvc @Import(SpringDataRestConfiguration.class)

I recompiled springfox-data-rest 2.9.2 against spring-data-commons 2.1.4, and changed a single line in EntityContext: return entities.getPersistentEntity(actualDomainType); becomes return entities.getPersistentEntity(actualDomainType).orElse(null); Using that, SpringDataRestConfiguration works like a charm.

Since there seems to be no timeline for a 3.x release, I think quite a few people would appreciate a 2.9.3 release with this small fix. I know I would. - Thank you!

Do you still have this issue? I had the same issue, and I found my project had downloaded guava version of 19.0, not 20.0. I figured out which library has dependency for 19.0 guava, and I put exclusion like below. and It works!

<dependency>
            <groupId>???</groupId>
            <artifactId>???</artifactId>
            <version>???</version>
            <exclusions>
                <exclusion>
                    <groupId>com.google.guava</groupId>
                    <artifactId>guava</artifactId>
                </exclusion>
            </exclusions>
<dependency>

I’m currently trying again, and getting the following after adding the @Import(SpringDataRestConfiguration.class) annotation:

***************************
APPLICATION FAILED TO START
***************************

Description:

An attempt was made to call the method org.springframework.data.repository.support.Repositories.getRepositoryInformationFor(Ljava/lang/Class;)Lorg/springframework/data/repository/core/RepositoryInformation; but it does not exist. Its class, org.springframework.data.repository.support.Repositories, is available from the following locations:

    jar:file:/Users/nicolaswidart/.m2/repository/org/springframework/data/spring-data-commons/2.1.3.RELEASE/spring-data-commons-2.1.3.RELEASE.jar!/org/springframework/data/repository/support/Repositories.class

It was loaded from the following location:

    file:/Users/nicolaswidart/.m2/repository/org/springframework/data/spring-data-commons/2.1.3.RELEASE/spring-data-commons-2.1.3.RELEASE.jar


Action:

Correct the classpath of your application so that it contains a single, compatible version of org.springframework.data.repository.support.Repositories

Is there anything I missed?

@ke88yun yes in the next few weeks. Sorry I was on a break from OSS, just to help prevent burnout (plus my day job).

@ke88yun yes in the next few weeks. Sorry I was on a break from OSS, just to help prevent burnout (plus my day job).

Hi, is there an estimated date for the release of version 3 of Springfox? It’s terrible to use a SNAPSHOT version in a productive environment.

Thanks.

Does anyone have a definitive fix for this issue? I’ve tried all the approaches mentioned above (as best as I could follow from the thread) but still having the exact same issue as nWidart.

springfox:
  documentation:
    auto-startup: false

mine work well

@see official doc

Actually, after this springfox swagger alone works. But not with the @Import(SpringDataRestConfiguration.class) annotation for spring data rest, just like @evgenru

After adding the import annotation I have

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2018-08-09 21:07:40.539 ERROR 35120 --- [  restartedMain] o.s.boot.SpringApplication               : Application run failed

org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NoSuchMethodError: org.springframework.data.repository.support.Repositories.getRepositoryInformationFor(Ljava/lang/Class;)Lorg/springframework/data/repository/core/RepositoryInformation;
	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:184) ~[spring-context-5.0.8.RELEASE.jar:5.0.8.RELEASE]
	at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:52) ~[spring-context-5.0.8.RELEASE.jar:5.0.8.RELEASE]
	at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356) ~[spring-context-5.0.8.RELEASE.jar:5.0.8.RELEASE]
	at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:157) ~[spring-context-5.0.8.RELEASE.jar:5.0.8.RELEASE]
	at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:121) ~[spring-context-5.0.8.RELEASE.jar:5.0.8.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:885) ~[spring-context-5.0.8.RELEASE.jar:5.0.8.RELEASE]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:161) ~[spring-boot-2.0.4.RELEASE.jar:2.0.4.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:553) ~[spring-context-5.0.8.RELEASE.jar:5.0.8.RELEASE]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140) ~[spring-boot-2.0.4.RELEASE.jar:2.0.4.RELEASE]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:762) [spring-boot-2.0.4.RELEASE.jar:2.0.4.RELEASE]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:398) [spring-boot-2.0.4.RELEASE.jar:2.0.4.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:330) [spring-boot-2.0.4.RELEASE.jar:2.0.4.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1258) [spring-boot-2.0.4.RELEASE.jar:2.0.4.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1246) [spring-boot-2.0.4.RELEASE.jar:2.0.4.RELEASE]
	at com.nwidart.techvideo.TechVideoApplication.main(TechVideoApplication.java:16) [classes/:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
	at java.base/java.lang.reflect.Method.invoke(Method.java:564) ~[na:na]
	at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) [spring-boot-devtools-2.0.4.RELEASE.jar:2.0.4.RELEASE]
Caused by: java.lang.NoSuchMethodError: org.springframework.data.repository.support.Repositories.getRepositoryInformationFor(Ljava/lang/Class;)Lorg/springframework/data/repository/core/RepositoryInformation;
	at springfox.documentation.spring.data.rest.EntityServicesProvider.requestHandlers(EntityServicesProvider.java:81) ~[springfox-data-rest-2.9.2.jar:null]
	at springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper$2.apply(DocumentationPluginsBootstrapper.java:138) ~[springfox-spring-web-2.9.2.jar:null]
	at springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper$2.apply(DocumentationPluginsBootstrapper.java:135) ~[springfox-spring-web-2.9.2.jar:null]
	at com.google.common.collect.Iterators$6.transform(Iterators.java:820) ~[guava-23.0.jar:na]
	at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48) ~[guava-23.0.jar:na]
	at com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48) ~[guava-23.0.jar:na]
	at com.google.common.collect.Iterators$ConcatenatedIterator.hasNext(Iterators.java:1394) ~[guava-23.0.jar:na]
	at com.google.common.collect.ImmutableCollection$Builder.addAll(ImmutableCollection.java:439) ~[guava-23.0.jar:na]
	at com.google.common.collect.ImmutableList$Builder.addAll(ImmutableList.java:802) ~[guava-23.0.jar:na]
	at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:274) ~[guava-23.0.jar:na]
	at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:229) ~[guava-23.0.jar:na]
	at com.google.common.collect.FluentIterable.toList(FluentIterable.java:616) ~[guava-23.0.jar:na]
	at springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper.defaultContextBuilder(DocumentationPluginsBootstrapper.java:111) ~[springfox-spring-web-2.9.2.jar:null]
	at springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper.buildContext(DocumentationPluginsBootstrapper.java:96) ~[springfox-spring-web-2.9.2.jar:null]
	at springfox.documentation.spring.web.plugins.DocumentationPluginsBootstrapper.start(DocumentationPluginsBootstrapper.java:167) ~[springfox-spring-web-2.9.2.jar:null]
	at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:181) ~[spring-context-5.0.8.RELEASE.jar:5.0.8.RELEASE]
	... 19 common frames omitted


Process finished with exit code 0

From this issue (https://github.com/springfox/springfox/issues/2298#issuecomment-410484583) it seems to be a known issue and won’t be fixed until 3.x.

The issue has been resolved.

  • I had to remove com.google.collections dependency,
  • update google-http-client-jackson2 from 1.22.0 to 1.23.0,
  • exclude guava from google-api-services-youtube.

Thank you for the hints, they managed to point me in the right direction. 👍

Oh I see.

I’ve added this:

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

Still getting the error however.

org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NoSuchMethodError: com.google.common.collect.FluentIterable.append(Ljava/lang/Iterable;)Lcom/google/common/collect/FluentIterable;

Do I need to specifically use version 20 you linked?

(Btw I’m using 2.8.0 on spring boot 2.0.4)

Thanks

Edit: same with version 21.0. I see that guava 20 is a transitive dependency of springfox-swagger though, so it should be at the right version I assume.

Even i am facing the same issue with spring boot 2.6.2 and spring-fox-starter 3.0.0

@armando-reyna

Here is one of the Repository class, we have several others which are similar but for different domain entities.

package com.ge.ec.authz.repository;

import java.util.List;

import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
import org.springframework.data.rest.core.annotation.RestResource;
import com.ge.ec.authz.domain.PermissionLevel;

@RepositoryRestResource(path="permissionLevels", collectionResourceRel="permissionLevels")
public interface PermissionLevelRepository extends CrudRepository<PermissionLevel, Long> {

    @RestResource(exported = false)
    @Query("SELECT A FROM PermissionLevel A WHERE LOWER(A.name) LIKE LOWER(?#{[0]})")
    List<PermissionLevel> findByName(@Param("name") String name);

}

@armando-reyna Thanks, with @EnableSwagger2WebMvc annotation, my code does run with no error, however there is no API document generated for those endpoints implemented by Spring Data Rest. The following is my configuration for io.springfox:springfox-data-rest:3.0.0-SNAPSHOT

@Configuration
@EnableSwagger2WebMvc 
@Import(SpringDataRestConfiguration.class)
public class SwaggerConfig {
}

and here is my POM.xml file

	<groupId>com.ge.ec</groupId>
	<artifactId>authz-aor-manager</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>authz-aor-manager</name>
	<description>authz aor manager service</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.2.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
		<spring-data-mock.version>1.1.4</spring-data-mock.version>
		<jacoco.version>0.8.1</jacoco.version>
		<sws-audit-service.version>0.0.1-SNAPSHOT</sws-audit-service.version>
		<springfox-swagger.version>3.0.0-SNAPSHOT</springfox-swagger.version>
	</properties>

	<dependencies>	
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-rest</artifactId>
		</dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-ldap</artifactId>
        </dependency>
        <dependency>
            <groupId>com.unboundid</groupId>
            <artifactId>unboundid-ldapsdk</artifactId>
            <scope>test</scope>
        </dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>

		<dependency>
    		<groupId>io.springfox</groupId>
    		<artifactId>springfox-swagger-ui</artifactId>
    		<version>${springfox-swagger.version}</version>
		</dependency>

		<dependency>
    		<groupId>io.springfox</groupId>
    		<artifactId>springfox-swagger2</artifactId>
    		<version>${springfox-swagger.version}</version>
		</dependency>
		    
		<dependency>
		    <groupId>io.springfox</groupId>
		    <artifactId>springfox-data-rest</artifactId>
		    <version>${springfox-swagger.version}</version>
		    <scope>compile</scope>      
		</dependency>

		<dependency>
			<groupId>com.ge.energy.grid</groupId>
			<artifactId>sws-audit-service</artifactId>
			<version>${sws-audit-service.version}</version>
		</dependency>

		<!-- The following is needed when you chose to use in memory database -->
		<dependency>
			<groupId>com.h2database</groupId>
			<artifactId>h2</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.postgresql</groupId>
			<artifactId>postgresql</artifactId>
			<scope>runtime</scope>
		</dependency>

	    <dependency>
	        <groupId>org.springframework.boot</groupId>
	        <artifactId>spring-boot-devtools</artifactId>
	    </dependency>
    				
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>	
		
		<dependency>
		    <groupId>com.mmnaseri.utils</groupId>
		    <artifactId>spring-data-mock</artifactId>
		    <version>${spring-data-mock.version}</version>
		    <scope>test</scope>
		</dependency>	
		
		<dependency>
			<groupId>org.springframework.restdocs</groupId>
			<artifactId>spring-restdocs-mockmvc</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.asciidoctor</groupId>
				<artifactId>asciidoctor-maven-plugin</artifactId>
				<version>1.5.6</version>
				<executions>
					<execution>
						<id>generate-docs</id>
						<phase>prepare-package</phase>
						<goals>
							<goal>process-asciidoc</goal>
						</goals>
						<configuration>
							<backend>html</backend>
							<doctype>book</doctype>
							<attributes>
    							<project-version>${project.version}</project-version>
							</attributes>
						</configuration>
					</execution>
				</executions>
				<dependencies>
					<dependency>
						<groupId>org.springframework.restdocs</groupId>
						<artifactId>spring-restdocs-asciidoctor</artifactId>
						<version>2.0.0.RELEASE</version>
					</dependency>
				</dependencies>
			</plugin>
			<plugin> 
				<artifactId>maven-resources-plugin</artifactId>
				<executions>
					<execution>
						<id>copy-resources</id>
						<phase>prepare-package</phase>
						<goals>
							<goal>copy-resources</goal>
						</goals>
						<configuration> 
							<outputDirectory>
								${project.build.outputDirectory}/static/docs
							</outputDirectory>
							<resources>
								<resource>
									<directory>
										${project.build.directory}/generated-docs
									</directory>
								</resource>
							</resources>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<version>${jacoco.version}</version>
				<executions>
					<execution>
						<id>prepare-agent</id>
						<goals>
							<goal>prepare-agent</goal>
						</goals>
					</execution>
					<execution>
						<id>report</id>
						<phase>prepare-package</phase>
						<goals>
							<goal>report</goal>
						</goals>
					</execution>
					<execution>
						<id>post-unit-test</id>
						<phase>test</phase>
						<goals>
							<goal>report</goal>
						</goals>
						<configuration>
							<!-- Sets the path to the file which contains the execution data. -->
							<dataFile>target/jacoco.exec</dataFile>
							<!-- Sets the output directory for the code coverage report. -->
							<outputDirectory>target/jacoco-ut</outputDirectory>
						</configuration>
					</execution>
				</executions>
				<configuration>
					<systemPropertyVariables>
						<jacoco-agent.destfile>target/jacoco.exec</jacoco-agent.destfile>
					</systemPropertyVariables>
				</configuration>
			</plugin>
		</plugins>
	</build>

now work with maven { url ‘http://oss.jfrog.org/artifactory/oss-snapshot-local/’ } compile(‘io.springfox:springfox-data-rest:3.0.0-SNAPSHOT’)

PS: updated repository )