Intellij 2017 Ultimateを使用して、MapStructを使用するSpring Bootアプリケーションをビルド/実行しようとしています。これはGradleプロジェクトです。私の問題は、IntelliJがMapStruct注釈プロセッサを実行していないように見えることです。 IntelliJをGradleビルドプロセスに委任するように構成できることを理解しています( これを参照 )。APTを使用して必要なものを生成するようにIntelliJを構成するだけです。クラス自体。
プロジェクトでAPTを有効にしましたが、クラスがまだ生成されていません。
build.gradle(該当するスニペット):
ext {
mapstructVersion = '1.2.0.Final'
}
plugins {
id 'net.ltgt.apt' version '0.15'
}
dependencies {
// MapStruct support
implementation group: 'org.mapstruct', name: 'mapstruct-jdk8', version: mapstructVersion
annotationProcessor group: 'org.mapstruct', name: 'mapstruct-processor', version: mapstructVersion
}
IntelliJ構成:
それでも、私が./gradle clean
の後にBuild-> Rebuild Projectを実行すると、out/production/classes/generatedフォルダーが空になります。
このプロジェクトでAPT=を有効にするために必要な追加事項はありますか?IntelliJはクラスパス内のmapstruct注釈プロセッサを自動的に検出する必要がありますか?
最後にそれはうまく働いています???? Intellji 2018.1 CE。 aptプラグインは必要ありません。
ここにgradleファイルが更新されています
plugins {
id 'Java'
}
repositories {
mavenCentral()
mavenLocal()
}
sourceCompatibility = JavaVersion.VERSION_1_8
dependencies {
compile group: 'org.mapstruct', name: 'mapstruct-jdk8', version: '1.2.0.Final'
compileOnly 'org.mapstruct:mapstruct-processor:1.2.0.Final'
annotationProcessor 'org.mapstruct:mapstruct-processor:1.2.0.Final'
compileOnly ("org.projectlombok:lombok")
testCompile 'junit:junit:4.12'
}
次のものが正しく設定されていることを確認してください
注釈プロセッサを有効にする(設定->ビルド実行実行->コンパイラ->注釈プロセッサ)
MapStructプラグイン
Lombokプラグイン
私のbuild.gradle:
plugins {
id 'Java'
id 'idea'
}
ext {
mapstructVersion = '1.2.0.Final'
}
dependencies {
// bean mapping
compile group: 'org.mapstruct', name: 'mapstruct-jdk8', version: mapstructVersion
compileOnly group: 'org.mapstruct', name: 'mapstruct-processor', version: mapstructVersion
annotationProcessor group: 'org.mapstruct', name: 'mapstruct-processor', version: mapstructVersion
}
更新して、プロジェクトを再構築してください。
うまくいかない場合...
手動で 注釈プロセッサ を有効にします。annotationProcessor
構成に関連する IDEAのバグ のようです。
「out/production/classes/generated」フォルダーでビルド出力を確認してください。空の場合は、プロジェクトを再構築してください。ビルド出力フォルダーの内容を手動で削除し、再構築の前にマッパークラスを変更して、変更が適用されていることを確認します。
$ rm -rf out build .gradle
IntelliJ IDEAの外部でプロジェクトをビルドして実行し、Gradleビルドファイルを確認します。
ビルドアクションをGradleに委任してみてください。とにかく注釈プロセッサが私のために働くので、私はこのオプションを使用しません。
IntelliJ IDEA 2018.3以降に更新します。
代わりにnet.ltgt.apt-idea
プラグインを使用する必要があります。これにより、IntelliJ IDEAが自動的に構成されます。
plugins {
id 'net.ltgt.apt-idea' version '0.17'
}
dependencies {
compile('org.mapstruct:mapstruct-jdk8:1.2.0.Final')
apt('org.mapstruct:mapstruct-processor:1.2.0.Final')
}
apt
は最新のGradleバージョンでは非推奨であり、代わりにannotationProcessor
を使用する必要があることに注意してください。ただし、IntelliJはまだサポートしていません。 IDEA-187868 を参照してください。
Tomcat EEサーバーを使用してSpringアプリケーションを実行しています。私にとっては、次のことを行うとうまくいきました:
Edit Configuration> VM Optionsに次の行を追加します
-Xms1024m -Xmx1024m -XX:MaxPermSize=256m