使用 gradle 从 jar 中排除 class

Exclude class from jar with gradle

我看过这些:

我想知道 exclude 应该使用什么路径或名称。这是在 gradle.kts 文件中:

group = "kaldrn.core"

jar {
    exclude("kaldrn/CliKt.class")
}

这是我的最佳猜测,因为它是 jar 中的文件路径。我也试过使用源文件,但不起作用。我试过只使用没有路径的基本名称,没有运气。 group 声明在这种情况下的重要性(如果有的话)对我来说是迷失的(我从来都不是 kotlin 之前的 java 大用户)。

class定义在cli.ktpackage kaldrn.

如何确定此处使用的内容?


也许具有讽刺意味的是 上面的路径被证明是正确的——请参阅我对已接受的答案的评论,该答案涉及影响 gradle 和 jar { exclude ...},至少对于版本 6.7。

排除路径应包含从源路径(例如,从main)到目标文件的完整路径。

你的情况:

jar {
    exclude("kaldrn/cli/CliKt.class")
}

如果您不确定路径,请在 build/classes/kotlin/main

下查找您的文件