eclipse使用mapstruct_如何让Eclipse使用Gradle生成MapStruct映射器

  • Post author:
  • Post category:其他


Is there any special copnfiguration to get eclipse to generate the Mapstruct mappers? Curently they are not being generated.

They do generate in a gradle build but I cannot get them to generate so I can use them in development.

I added this to my build.gradle:

plugins {

id “net.ltgt.apt” version “0.10”

}

dependencies {

compile “org.mapstruct:mapstruct-jdk8:$mapstructVersion”

apt “org.mapstruct:mapstruct-processor:$mapstructVersion”

}

I also added the eclipse plugin for MapStruct (although I belive that this is not actually required???)

I then went Project > Properties > Java Compiler > Annotation Processing:

But .apt_generated is empty, what am I missing?

I’m using:

Eclipse: Version: Oxygen Release (4.7.0) Build id: 20170620-1800

MapStruct version 1.2.0.CR1 (also tries 1.1.0.FINAL)

解决方案

So after a bit of searching I determined that the solution is that you have to manually run the eclipse task in gradle. You should then see similar to the following if it is successful:

The solution came from reading https://github.com/tbroyer/gradle-apt-plugin docs which states:

When using Buildship, you’ll have to manually run the eclipseJdtApt and eclipseFactorypath tasks to generate the Eclipse configuration files, then either run the eclipseJdt task or manually enable annotation processing: in the project properties → Java Compiler → Annotation Processing, check Enable Annotation Processing. Note that while all those tasks are depended on by the eclipse task, that one is incompatible with Buildship, so you have to explicitly run the two or three aforementioned tasks and not run the eclipse task.

It states that the eclipse task is incompatible with buildship but that seems to be fixed (I ran the eclipse task and had no issues):

I did however have issues with the cleanEclipse task which does seem to be incompatible with Buildship.

After all this the *MapperImpl.java classes are generated in /.apt_generated



版权声明:本文为weixin_39671621原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。