0

我正在为我的 Spring/Groovy 应用程序寻找一个映射框架。我找到了Nomin - 它看起来很适合我的需要。但我有以下问题:它在我的测试类中找不到我的映射规则脚本。

src/main/groovy/mypackage/entity2entitydto.groovy

import org.nomin.entity.*

mappingFor a: Entity,  b: EntityDto
a.name      =       b.name

src/test/groovy/mypackage/Entity2EntityDtoTest.groovy

public class CoinMarketCap2CoinTest {
    NominMapper nomin = new Nomin("entity2entitydto.groovy");

    // also tried entity2entitydto, Entity2entitydto, Entity2entitydto.groovy
    // also tried with full package name
    // also tried File Name Entity2entitydto.groovy

    @Test
    public void test() {
        // Testing ...
    }

}

之后的结果gradle clean build --stacktrace

org.nomin.core.NominException: Specified resource entity2entitydto.groovy isn't found!
...

有人对适用于 groovy 的映射框架有任何想法或建议。提前致谢。

4

1 回答 1

3

Nomin 抛出此异常,因为您的脚本不在类路径中。将您的entity2entitydto.groovy文件移动到,src/main/resources以便 Nomin 可以正确地从类路径加载您的映射脚本。

其次,确保在映射脚本中导入正确的类。例如,如果我有mypackage.Entitymypackage.EntityDto类,那么我可以像这样导入它们:

import mypackage.Entity
import mypackage.EntityDto

mappingFor a: Entity,  b: EntityDto
a.name      =       b.name

相反,您必须使用完整的规范名称,例如:

mappingFor a: mypackage.Entity,  b: mypackage.EntityDto
a.name      =       b.name

您还可以查看根据您的问题创建的这个非常基本且简单的示例 - https://github.com/wololock/nomin-example

希望能帮助到你。

于 2018-01-11T23:47:55.193 回答