taboolib icon indicating copy to clipboard operation
taboolib copied to clipboard

依赖加载时无法解析 parent 中变量

Open EikoocS opened this issue 2 years ago • 7 comments

[12:18:41] [Server thread/WARN]: 	at letter-0.1-SNAPSHOT.jar//tech.cookiepower.taboolib.common.env.AbstractXmlParser.getReplacement(AbstractXmlParser.java:44)
[12:18:41] [Server thread/WARN]: 	at letter-0.1-SNAPSHOT.jar//tech.cookiepower.taboolib.common.env.AbstractXmlParser.replaceVariables(AbstractXmlParser.java:61)
[12:18:41] [Server thread/WARN]: 	at letter-0.1-SNAPSHOT.jar//tech.cookiepower.taboolib.common.env.AbstractXmlParser.find(AbstractXmlParser.java:92)
[12:18:41] [Server thread/WARN]: 	at letter-0.1-SNAPSHOT.jar//tech.cookiepower.taboolib.common.env.AbstractXmlParser.find(AbstractXmlParser.java:69)
[12:18:41] [Server thread/WARN]: 	at letter-0.1-SNAPSHOT.jar//tech.cookiepower.taboolib.common.env.Dependency.<init>(Dependency.java:197)
[12:18:41] [Server thread/WARN]: 	at letter-0.1-SNAPSHOT.jar//tech.cookiepower.taboolib.common.env.DependencyDownloader.loadDependencyFromPom(DependencyDownloader.java:313)
[12:18:41] [Server thread/WARN]: 	... 23 more

netty-handler(https://search.maven.org/artifact/io.netty/netty-handler/4.1.74.Final/pom) 中调用的变量 ${tcnative.artifactId}无法被taboolib解析

<dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>${tcnative.artifactId}</artifactId>
      <classifier>${tcnative.classifier}</classifier>
      <optional>true</optional>
    </dependency>

而此变量定义于 parent 标签中的 netty-parent 中 https://search.maven.org/artifact/io.netty/netty-parent/4.1.74.Final/pom

<properties>
        <tcnative.artifactId>netty-tcnative-boringssl-static</tcnative.artifactId>
        <tcnative.classifier />
      </properties>

即使 ignoreOptional 为 true 也会试图先进行变量解析,并抛出解析异常

EikoocS avatar May 04 '22 04:05 EikoocS

image 经过测试,在 `6.0.7-56` 版本启用 `ignoreOptional` 的情况下依赖正常加载,不会解析 `${tcnative.artifactId}` 变量。

Bkm016 avatar May 04 '22 05:05 Bkm016

image 若 **主动关闭** 则产生异常,该选项默认为启用。

boolean ignoreOptional() default true;

Bkm016 avatar May 04 '22 05:05 Bkm016

如果你在后续升级版本测试中仍无法解决该问题,可尝试使用最新版本。 https://github.com/TabooLib/taboolib/actions/runs/2267917550

该版本将允许忽略依赖加载异常:

@RuntimeDependency("io.netty:netty-handler:4.1.74.Final", ignoreException = true)

该功能来自 DependencyLoader 开源库,仅支持解析简单的 pom 文件,目前无法对其功能进行扩展。

Bkm016 avatar May 04 '22 05:05 Bkm016

image taboolib :6.0.7-56 在没有主动关闭的情况下依然会出现异常,ignoreOptional 是否只对第一层的依赖有效

EikoocS avatar May 04 '22 05:05 EikoocS

如果你在后续升级版本测试中仍无法解决该问题,可尝试使用最新版本。 https://github.com/TabooLib/taboolib/actions/runs/2267917550

该版本将允许忽略依赖加载异常:

@RuntimeDependency("io.netty:netty-handler:4.1.74.Final", ignoreException = true)

该功能来自 DependencyLoader 开源库,仅支持解析简单的 pom 文件,目前无法对其功能进行扩展。

构建失败了

EikoocS avatar May 04 '22 10:05 EikoocS

image taboolib :6.0.7-56 在没有主动关闭的情况下依然会出现异常,ignoreOptional 是否只对第一层的依赖有效

可能是,晚上我测试一下

Bkm016 avatar May 05 '22 09:05 Bkm016

现在我随着我不断更改依赖加载的方式,报错也不断变化... 不止无法加载变量一个问题,我整理一下发一个新的issue

EikoocS avatar May 06 '22 02:05 EikoocS