问题标签 [nomin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
297 浏览

spring - Groovy 的 Nomin Mapper 框架

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

src/main/groovy/mypackage/entity2entitydto.groovy

src/test/groovy/mypackage/Entity2EntityDtoTest.groovy

之后的结果gradle clean build --stacktrace

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

0 投票
1 回答
129 浏览

groovy - 名义自动映射导致无限循环

我正在使用 Nomin 进行映射任务。从Nomin的文档中获取,它应该能够在自动映射已激活的情况下自行映射具有相同名称的字段。激活它时,会导致无限循环异常。

我有以下内容:

例外:

0 投票
0 回答
162 浏览

gradle - 在 Eclipse 下运行 Nomin Mapper 导致 NominException: Resource not found

我正在使用带有 Nomin 作为映射器的 Spring/Groovy 应用程序。之后我的测试在控制台上运行良好gradle build/test。Nomin 使用定义的映射查找 groovy 资源文件。但我不能让它在 Eclipse/STS 中工作。

在此处输入图像描述

我定义了一个 Utils 类来获取资源文件名:

My Class using Nomin Mapper 将构造函数调用为:

堆栈跟踪:

该文件coinmarketcap2coin.groovy位于src/main/resources. 我必须如何实现getMapperResource它在控制台和 Eclipse 上都有效的方法?

更新:

对我来说,这似乎是src/main/resources路径下的 Eclipse 和 Groovy 类的错误,例如在使用 Nomin 映射器的情况下。

正如您在屏幕截图中看到的那样,它将我coinmarketcap2coin.groovy置于默认包之下。当我将其重命名为 时coinmarketcap2coin.groovymapper,它不会在默认包中显示更多内容,而是直接在src/main/resources.

在这种情况下,它适用于 Eclipse 和带有 gradle 的控制台。我已经尝试在 Eclipse 中配置类路径以排除资源文件夹中的 .groovy 文件,但总是在项目上的 Gradle/Clean 之后,它会再次回到默认包中。

我尝试了一个具有相同星座的迷你示例,但是 maven 项目,我没有那个问题......所以我不知道......它现在对我有用,但不知何故它是一个黑客......如果有人有同样的问题并且一个干净的解决方案我真的很感激知道它。

0 投票
1 回答
267 浏览

spring-boot - Nomin 和 Spring Boot 应用:递归映射规则 a = b 导致无限循环

由于我在使用Nomin 、Eclipse 和Groovy的组合时已经遇到了一些问题(请参阅链接 1和链接 2 ),我再次为它苦苦挣扎。

我的应用程序通过 Gradle 和 Eclipse 在控制台中使用 JUnit 测试。但是现在它不想在执行 SpringBoot-Main 类时工作。无论是在 Eclipse 中,还是gradle bootRun在控制台或 Eclipse Gradle 任务 => 相同的异常中

转换器类:

coinmarketcap2coin.groovymapper 为什么我命名它,.groovymapper请参阅上面的链接。它的位置是src/main/resources

堆栈跟踪:

更新:

以下 CodeSnippetNomin.class在测试下运行时按预期工作。通过 bootRun 运行时,如果第 220 行的 else 为假,那么应该为真。

在此处输入图像描述

在第 220 行,我们得到pm.sideB.isAssignableFrom(key.source)了应该得到的结果true,因为pm.sideB是类型Coin,并且key.source是类型Coin(参见屏幕截图)。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述