当在我的gradle文件中添加依赖项作为实现时,它们在作为运行时配置的一部分列出时不会被包括在内。例如,当试图将它们放入pathing jar时,它们被排除在外,如下所示:
task pathingJar(type: Jar) {
dependsOn configurations.runtime
appendix = 'pathing'
doFirst {
manifest {
attributes "Class-Path": configurations.runtime.files.collect {
it.toURL().toString().replaceFirst(/file:\/+/, '/')
}.join(' ')
}
}
}
但是,当将这些作为编译依赖项移回时,这是有效的。现在的问题是在编译时,我的类路径要大得多。我的理解是,实现应该被视为直接使用者中的编译时和传递性的运行时,那么为什么它们被排除在配置之外呢?当将它们指定为“API”时,这也不起作用。这是使用梯度5.6.1。
不推荐使用runtime
配置,并将其替换为runtimeonly
。这个旧的配置不知道新的实现
或API
配置,所以这就是为什么在解析它时看不到依赖项。
您所希望的不是解析runtimeonly
配置,而是解析运行时使用的类路径。此配置称为runtimeClasspath
。示例:
tasks.register("patchingJar", Jar) {
dependsOn configurations.runtimeClasspath
appendix = 'patching'
doFirst {
manifest {
attributes "Class-Path": configurations.runtimeClasspath.files.collect {
it.toURL().toString().replaceFirst(/file:\/+/, '/')
}.join(' ')
}
}
}
是否有一种方法可以使用Gradle从一组中排除特定的jar?我尝试了下面的代码,但这删除了该组的所有jar
我有一个项目需要依赖于iText 5.5.2和iText 2.1.7(Primefaces在运行时需要这个特定的版本,由于许可证问题,无法使用iText 5)。 所以我在pom.xml中有以下内容: 问题是,我不希望我们的开发人员能够从iText 2.1.7(com.lowagie.*包)导入类。我想强制他们使用iText 5.5.2(com.itextpdf.*包)中的类。 是否有方法将其从构建
问题内容: 我有一个项目,该项目依赖于由供应商控制的工件。该工件包含一些我依赖的类,其中一些类较旧并且会引起问题。有没有办法让Maven自动扩展jar,删除类并将它们重新打包为依赖项?我会举一个例子。 所以- 我需要使用在项目网站,但我需要使用从神器。我无法修改Supplier:artifact或us:dependency。 有任何想法吗?! 问题答案: 从版本2.0.9开始,maven保留了类路
在我的
我只想排除中的一些jar 我的配置是(根据https://maven.apache.org/plugins/maven-dependency-plugin/list-mojo.html) : 然后我就跑 但依赖项仍然出现在文件中。
我想使用第三方供应商的jar。但是在这个jar中,我有Java包的旧版本我需要找到一些方法将包从主项目中排除。像这样的东西: 你能推荐一些解决方案吗?