我遇到一个问题,其中同一类的多个版本显示在我的类路径中。有问题的班级是javax.ws.rs.core.UriBuilder
。我要使用的版本由引入javax.ws.rs:javax.ws.rs- api:2.0.1
。但是,我们还使用了Jira rest客户端库,该库依赖于较旧版本的jersey(com.sun.jersey:jersey- core
),该版本包含捆绑在jar中的java.ws软件包。
这是构建文件中的示例片段:
dependencies {
compile 'com.atlassian.jira:jira-rest-java-client-core:2.0.0-m31'
compile 'javax.ws.rs:javax.ws.rs-api:2.0.1'
compile 'org.glassfish.jersey.core:jersey-client:2.17'
}
我无法删除com.sun.jersey:jersey- core
它,因为它使用了与新版本不同的软件包名称,并且会导致在Jira客户端中找不到类def的异常。
据我所知,目前我的选择是:
javax.ws
从旧球衣客户中排除了该软件包。我想继续使用较新版本的jersey,因此#2将是我的理想解决方案,但我不确定是否有可能。有人知道该怎么做吗?如果那不可能,我欢迎其他建议。
我发现com.sun.jersey:jersey-
core:1.19不会捆绑javax.ws.rs类文件,而是将它们列出为编译时依赖项。将此片段添加到我的build.gradle中解决了该问题。
configurations.all {
resolutionStrategy {
// For a version that doesn't package javax.ws
force 'com.sun.jersey:jersey-core:1.19'
}
}
我在Jetty上使用Spring Boot,似乎我不能在Gradle构建文件中排除所有的Tomcat依赖项。 build.gradle的相关部分: 然而,当我运行时,Tomcat的一部分仍然存在,并导致WebSocket出现问题: 为什么< code > spring-boot-starter-Tomcat 没有被排除在< code > spring-boot-starter-web 之外?
我试图用JUnit和SLF4J测试来测试记录器的行为,这是“SLF4J的一个测试实现,它将日志消息存储在内存中,并提供检索它们的方法”。 我有一些将SLF4J作为传递依赖项的依赖项。我试图将SLF4J从我的测试配置中的所有依赖项中排除,但我仍然需要它来进行SLF4J测试。 我可以通过下面的代码将SLF4J排除在所有内容之外,但这显然也将它排除在我需要的SLF4J测试之外。 由于SLF4J是我的许多
我想使用第三方供应商的jar。但是在这个jar中,我有Java包的旧版本我需要找到一些方法将包从主项目中排除。像这样的东西: 你能推荐一些解决方案吗?
目前,如果我试图在Gradle中做类似的事情,排除将被忽略,并且下载所有六个工件。 我使用的是Gradle版本1.8。
问题内容: 我有一个项目,该项目依赖于由供应商控制的工件。该工件包含一些我依赖的类,其中一些类较旧并且会引起问题。有没有办法让Maven自动扩展jar,删除类并将它们重新打包为依赖项?我会举一个例子。 所以- 我需要使用在项目网站,但我需要使用从神器。我无法修改Supplier:artifact或us:dependency。 有任何想法吗?! 问题答案: 从版本2.0.9开始,maven保留了类路
是否有一种方法可以使用Gradle从一组中排除特定的jar?我尝试了下面的代码,但这删除了该组的所有jar