我有2个项目,项目A和项目B.两个项目都是单独的git存储库中的gradle项目。 项目B使用elasticsearch-rest-api jar,并包含在依赖项中,如下所示:
public static void WebRequest()
{
string WEBSERVICE_URL = "https://jsonwhoisapi.com/api/v1/whois?identifier=google.com";
try
{
var webRequest = System.Net.WebRequest.Create(WEBSERVICE_URL);
if (webRequest != null)
{
webRequest.Method = "GET";
webRequest.Timeout = 20000;
webRequest.ContentType = "application/json";
webRequest.Headers.Add("userid:apikey");
using (System.IO.Stream s = webRequest.GetResponse().GetResponseStream())
{
using (System.IO.StreamReader sr = new System.IO.StreamReader(s))
{
var jsonResponse = sr.ReadToEnd();
Console.WriteLine(String.Format("Response: {0}", jsonResponse));
}
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
项目A使用项目B,项目B作为依赖项添加到项目A,如下所示:
dependencies {
compile "org.elasticsearch.client:rest:5.4.0",
"org.elasticsearch.client:sniffer:5.4.0"
}
当我刷新项目A的gradle依赖项时,“Project and External Dependencies”中只有Project B jar可用。我无法在Project A依赖项中看到弹性客户端休息和嗅探器。
因此,当我启动Project A spring启动应用程序时,它会抛出以下错误:
错误o.s.b.SpringApplication [main]应用程序启动失败org.springframework.beans.factory.BeanDefinitionStoreException:无法解析配置类[com.discover.paymentservices.dnfraud.pads.txnprocessor.PadsTransactionProcessorApplication];嵌套异常是java.io.FileNotFoundException:类路径资源[org / elasticsearch / client / RestClient $ FailureListener.class]无法打开,因为它不存在 在org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:182)
根据我的理解,项目B中的项目B依赖项也将默认可用,因为项目B被添加为项目A的依赖项。
我尝试了很多选项,包括仅编译时间和provideRuntime等无法找出问题。任何人都可以就此提供意见。非常感谢。