显示一条消息,说明mapstruct注释处理器是否创建文件-对于我的自定义“ generateMappers”任务更可取

时间:2019-05-20 12:24:40

标签: gradle mapstruct

由M.Ricciuti提供,他回答了我最初的'Migrating from Gradle 4 to 5. How to get mapstruct 1.20.final working with it'问题,我还有一个问题。由于“添加评论”不允许我输入足够的字符/文本,因此创建了一个新的新线程。

我希望有一个Gradle'generateMappers'任务来生成mapstruct源文件,并在生成源时显示一条消息,并且最好告诉我什么都不会生成,因为不需要它。

在旧情况下,我们有一个generateMappers任务,该任务使用mapstruct生成源文件并在创建文件时显示一条消息。现在它基本上是空的。


__global__ void func(int* a, int* b)
{
    int place = blockIdx.x * blockDim.x + threadIdx.x;
        ///more code
}

通过将任务更改为'task generateMappers {...}',我总是会收到一条消息-即使没有生成任何新文件,因为映射器中没有任何更改。 Gradlew --info透露

task generateMappers (type: JavaCompile, dependsOn: compileJava) {
        doFirst {
                println "\tGenerating mapper classes"
        }

        doLast {
                println "\tMapping classes generated"
        }
}

Gradlew -i generateMappers reveals the following. 
> Task :eu.myfirm.rest:generateMappers NO-SOURCE
Skipping task ':eu.myfirm.rest:generateMappers' as it has no source files and no previous output files.
:eu.myfirm.rest:generateMappers (Thread[Execution worker for ':' Thread 4,5,main]) completed. Took 0.0 secs.[enter link description here][1]
NOTE: > Task :eu.myfirm.rest:compileJava FROM-CACHE does trigger correctly ONLY when the sources are not there. 

这是错误的,因为禁用了缓存,而且我知道这只是表面上的,因为无论源是否存在,我总是会收到此消息。

我有种感觉,我走在错误的轨道上,我不得不以某种方式挂入annotationProcessor ,以获取所需的两条消息,但我也想单独执行一次“ generateMappers”任务打电话。非常感谢任何进一步的提示/指针。

0 个答案:

没有答案