2016-06-14 6 views
1

Mavenが管理するLombokプロジェクトがあり、Intellijを使用しています。ビルド後、ターゲット/ generated-sources/delombokで生成されたソースのために、Intellijで重複したクラスについて多くのエラーが発生します。これらのエラーをなくすために何かできることはありますか?今はターゲットフォルダを削除するだけですが、これは本当に面倒です。Lombokを使用してMavenプロジェクトでIntellijの重複したクラスエラーを取り除く方法

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.5.1</version> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
       <encoding>UTF-8</encoding> 
      </configuration> 
     </plugin> 

     <plugin> 
      <groupId>org.projectlombok</groupId> 
      <artifactId>lombok-maven-plugin</artifactId> 
      <version>1.16.8.0</version> 
      <executions> 
       <execution> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>delombok</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

    <profiles> 
    <profile> 
     <id>lombok-needs-tools-jar</id> 
     <activation> 
      <file> 
       <exists>${java.home}/../lib/tools.jar</exists> 
      </file> 
     </activation> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.projectlombok</groupId> 
        <artifactId>lombok-maven-plugin</artifactId> 
        <version>1.16.8.0</version> 
        <dependencies> 
         <dependency> 
          <groupId>sun.jdk</groupId> 
          <artifactId>tools</artifactId> 
          <version>1.8</version> 
          <scope>system</scope> 
          <systemPath>${java.home}/../lib/tools.jar</systemPath> 
         </dependency> 
        </dependencies> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
</profiles> 
+0

delombokを使用する理由はありますか?ロンボクを使うだけでは、[(提供された)ロンボク依存](https://projectlombok.org/mavenrepo/index.html)が必要です。 –

+0

Lombokifiedメソッドを含むJavadocを生成したい。そのために、javadocを実行できるようにソースを生成する必要があります。 – Selena

+1

私はmvnの達人ではありませんが、delombokを別のディレクトリに設定して( 'lombok.outputDirectory'を設定して)javadocにそのディレクトリを使用するように指示することができます。 –

答えて

0

delombok goal documentationによると:私はMavenの中に標準的な構成とでロンボクのソースコードは、メイン/ SRC /ロンボクである必要があり

デフォルトの出力ディレクトリは次のとおりです。

${project.build.directory}/generated-sources/delombok 

私は

IDEAオートマチックのJetBrainsチームメンバーcommentが見つかりました生成されたソースがない場合はビルド 'ターゲット'フォルダを除外し、それ以外の場合は生成されたすべてのサブフォルダを除外します。

生成されたコードがいくつかある場合、または除外したい成果物をビルドする場合は、 'target'フォルダの下に置くことができます。

これは/generated-sourcesディレクトリはデフォルト除外し、あなたには、いくつかのファイルを除外する予定がある場合は、あなたが親/targetディレクトリの下とNOT /generated-sources下に置くべきではないことであることを意味します。これはDuplicate class found in (...)警告を与えるからIDEAを停止します

<plugin> 
    <groupId>org.projectlombok</groupId> 
    <artifactId>lombok-maven-plugin</artifactId> 
    <version>1.16.18.0</version> 
    <executions> 
     <execution> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>delombok</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <sourceDirectory>src/main/java</sourceDirectory> 
     <outputDirectory>${project.build.directory}/delombok</outputDirectory> 
     <addOutputDirectory>false</addOutputDirectory> 
     <encoding>UTF-8</encoding> 
    </configuration> 
</plugin> 

:このプラグインを設定し、デフォルト以外の<outputDirectory>を提供する必要がありますを達成するために

+0

私は次の月にこれを試してみるつもりです。私はしばらくの間休暇に出かけようとしています。仕事は狂っています。私は実際に私のコードベースを使って作業していた人々に混乱していたので、私はdelombokを使わないようにしていたプロジェクトを実際にリファクタリングしました。 – Selena

関連する問題