1

假设我想使用 opencsv。我external-dependencies.xml通过说 usemaven='true' 添加了依赖项,要求下载依赖项。jar文件被下载并存储在扩展的lib文件夹中

在此处输入图像描述

现在,如果我想使用这个依赖来生成包含注释示例的 Java bean。

<bean class="com.something.dto.IndirectSaleData">
    <import type="com.opencsv.bean.CsvBindByName"/>
    <property name="firstName" type="java.lang.String">
        <annotations>@CsvBindByName(column = "first_name", required = true)</annotations>
    </property>
</bean>

为什么它无法解决依赖关系?

在此处输入图像描述

另一方面,如果我直接创建 Java 类,它工作得很好,例如 -

import com.opencsv.bean.CsvBindByName;
public class Data {

    @CsvBindByName(column = "first_name", required = true)
    private String name;

}
4

2 回答 2

0

从问题本身看来,问题不在于库依赖关系,而在于 bean XML 定义。此外,用这样的注释定义 bean 也是不可读的。最好直接将其添加为 Java 类。

于 2020-05-20T15:24:11.287 回答
0

有一种方法可以在构建类路径中插入依赖项。我们可以buildcallbacks.xml为此使用。我所做的是将外部依赖项移至platform/core/lib我希望它在生成模型类期间可用的位置。

代码片段:

<macrodef name="yourExtensionName_before_build">
    <sequential>
        <echo message="Copy external jar to platform core"/>
        <!-- Copy the jar from your extension lib folder to platform core -->
        <copy file="${ext.yourExtensionName.path}/lib/your-dependency.jar"
              todir="${platformhome}/ext/core/lib" failonerror="true"/>
    </sequential>
</macrodef>
于 2020-05-21T12:29:57.337 回答