2017-08-05 18 views
1

EclipseでMapstructマッパーを生成するための特別な設定がありますか?確かに彼らは生成されていません。EclipseでGradleを使用してMapStructマッパーを生成する方法

これらは、グラデルビルドで生成されますが、生成することができないため、開発に使用できます。

私は私のbuild.gradleにこれを追加しました:

plugins { 
    id "net.ltgt.apt" version "0.10" 
} 
dependencies { 
    compile "org.mapstruct:mapstruct-jdk8:$mapstructVersion" 
    apt "org.mapstruct:mapstruct-processor:$mapstructVersion" 
} 

(私はこれが実際に必要ではないことを信じものの???)私はまたMapStructのためのEclipseプラグインを追加

Iその後、 [プロジェクト]> [プロパティ]> [Javaコンパイラ]> [注釈処理を行ってきました:

screenshot

しかし、.apt_generatedは空です。何が分かりませんか?

私が使用している:

Eclipseを:バージョン:酸素放出(4.7.0)のIDをビルドします。20170620から1800

MapStructバージョン1.2.0.CR1(も1.1.0.FINALがしようとしますが)

答えて

3

それで少しの検索の後、解決策は、手動でeclipseタスクをgradleで実行する必要があるということでした。それが成功した場合は、その後、次のように表示されるはずです。

enter image description here

は、ソリューションを述べhttps://github.com/tbroyer/gradle-apt-pluginドキュメントを読んでから来た:

Buildshipを使用する場合は、手動で実行する必要があります

eclipseJdtAptおよびeclipseFactorypathタスクを使用してEclipse構成ファイルを生成し、eclipseJdtタスクを実行するか、手動で注釈処理を使用可能にします。プロジェクト・プロパティー→Javaコンパイラー→注釈処理で注釈処理を有効にします。これらのタスクはすべてEclipseタスクに依存しますが、そのタスクはBuildshipと互換性がないので、前述の2つまたは3つのタスクを明示的に実行し、Eclipseタスクを実行しないでください。

それはeclipseタスクがbuildshipと互換性がないと述べているが、それは(私はeclipseタスクを実行し、何の問題もなかった)に固定されているようだ:

enter image description here

私はしかし、との問題を持っていましたcleanEclipse Buildshipと互換性がないと思われるタスク。

すべてこの*MapperImpl.javaのクラスは、あなたがあなたの問題の解決策を見つけ出すことに成功し<project_root>/.apt_generated

+1

グレートで生成された後。また、私たちのウェブサイトの[issue](https://github.com/mapstruct/mapstruct.org/issues/63)も作成しましたので、あなたの回答を[IDE Support](http://mapstruct.org/documentation/ide-support /)の一部です。 – Filip

+0

ロンボクも使用している場合は、パドルなしでクリークを上っている可能性があります。 – Justin

+1

@Justin現在のところ、Lombok '1.16.18'とMapstruct 1.2.0の両方を使用することに問題があるようです。Eclipseの最終版(AFAIKは他のIDEで動作し、確かにGradleで動作します)は、https://github.com/mapstruct/mapstruct/issues/1159およびhttps://github.com/rzwitserloot/lombok/issues/1359を参照してください。 'org.mapstruct.ap.spi.AstModifyingAnnotationProcessor.class'ファイルを' lombok.jar'に追加するという回避策が私にとってはうまくいきます。うまくいけばすぐに修正されるでしょう。 – Neilos

関連する問題