我试图让 j2objc 在 gradle 项目中的一些仅 java 的模块上运行。我正在使用 j2objc 的 gradle 插件,但我不认为这是任何问题的根源。该模块使用 XMLUnit 来检测输入文件中的差异。XMLUnit 包括一个org.xmlunit.builder.JaxbBuilder
由于没有看到 j2objc 中省略的一些 javax 类而导致翻译失败的类,大概是因为它们无法翻译。无论如何,我的代码不使用JaxbBuilder
该类,因此我创建了一个死代码报告来省略它。我知道我可以使用 proguard 来生成一个更完整的集合,但现在,我的重点只是防止尝试这个类,因为我仍在为这一切开发一个 gradle CI 管道。该报告的标题是dead_code.log
仅包含以下行:
org.xmlunit.builder.JaxbBuilder
j2objc 插件配置指定为:
j2objcConfig {
autoConfigureDeps true
// Xcode workspace directory
xcodeProjectDir '../ios'
translateArgs '--dead-code-report', './dead_code.log'
translateArgs '--doc-comments'
translateArgs '-v'
finalConfigure() // Must be last call to configuration
}
而且我可以在日志中看到死代码参数已添加到命令行,但在执行中我看到:
AnnotatedElement 类型的通用方法 getAnnotation(Class) 不适用于参数 (Class)。推断的类型 XmlRootElement 不是有界参数错误的有效替代品:org/xmlunit/builder/JaxbBuilder.java:103:XmlRootElement 无法解析为类型错误:org/xmlunit/builder/JaxbBuilder.java:106:方法来自 JaxbBuilder 类型的 createJAXBElement(Object) 指的是缺少的类型 JAXBElement 错误:org/xmlunit/builder/JaxbBuilder.java:108:来自类型 JaxbBuilder 的方法 createInferredJAXBElement(Object) 指的是缺少的类型 JAXBElement 错误:org/xmlunit/ builder/JaxbBuilder.java:117:JAXBException 无法解析为类型错误:org/xmlunit/builder/JaxbBuilder.java:117:PropertyException 无法解析为类型错误:org/xmlunit/builder/JaxbBuilder.java:118:
我解释为它试图处理JaxbBuilder
课程。配置中有我遗漏的东西吗?