idea踩坑 maven项目增加pom依赖 提示找不到jar包

入手idea不久,踩到的坑数不胜数,在此记录一下。

 

    最近将一个MyEclipse开发的maven转移到idea开发,应要求整合swagger2,之前在MyEclipse也整合过,毫不犹豫地将dependency复制过来



    io.springfox
    springfox-swagger2
    2.6.1


    io.springfox
    springfox-swagger-ui
    2.7.0

然后将swagger2的配置复制过来

package com.common.comm.swagger;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@EnableSwagger2
@Configuration
public class SwaggerConfig {
	@Value("${swagger.enable}")
	private boolean swagger_enable;
	/**
	 * 通过 createRestApi函数来构建一个DocketBean 函数名,可以随意命名,喜欢什么命名就什么命名
	 */
	@Bean
	public Docket createRestApi() {
		return new Docket(DocumentationType.SWAGGER_2)
				.enable(swagger_enable)
				.globalOperationParameters(setToken())
				.apiInfo(apiInfo())
				// 调用apiInfo方法,创建一个ApiInfo实例,里面是展示在文档页面信息内容
				.select()
				// 控制暴露出去的路径下的实例
				// 如果某个接口不想暴露,可以使用以下注解
				// @ApiIgnore 这样,该接口就不会暴露在 swagger2 的页面下
				.apis(RequestHandlerSelectors.basePackage("com.test"))
				.paths(PathSelectors.any()).build();
				
	}

	// 构建 api文档的详细信息函数
	private ApiInfo apiInfo() {
		return new ApiInfoBuilder()
				// 页面标题
				.title("test")
				// 版本号
				.version("1.0")
				// 描述
				.description("test").build();
	}
	 /**
     * 设置token参数
     * @return
     */
    private List setToken(){
        ParameterBuilder tokenPar = new ParameterBuilder();
        List pars = new ArrayList();
        tokenPar.name("token").description("令牌").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
        pars.add(tokenPar.build());
        return pars;
    }
}

在Controller上加上注解

package com.test.controller;
/**
 * @author whf
 */
@RestController
@RequestMapping(value = "test", method = RequestMethod.POST, produces = "text/plain;charset=utf-8")
@Api(description = "测试接口")
public class TestController {

	// 省略方法

}

重启项目。。。

结果居然报了ClassNotFountException

what???

仔细检查复制过来的东西,完全没发现任何问题,原项目正常启动。

检查本地maven仓库,jar包正常。

更换swagger版本,还是报错。

疯狂百度,没什么结果。

疯狂google,还是没什么结果。

此处省略一万字。。。

就在我万分绝望,瞎jer配置的时候,突然在这里

idea踩坑 maven项目增加pom依赖 提示找不到jar包_第1张图片

idea踩坑 maven项目增加pom依赖 提示找不到jar包_第2张图片

发现了我的swagger2依赖(额。。这张截图是正常的,因为几天后才做记录,这个就没有去复现了,异常情况是红框部分可以展开,展开后就是我的那个swagger依赖jar)

双击那个jar,jar消失,应该是到左边的WEB-INF下面的lib里边去了。

重启项目

wc!!!成功了!!!

终于成功了。。。

你可能感兴趣的:(idea踩坑 maven项目增加pom依赖 提示找不到jar包)