17039


maven では、ソースファイルのパッケージ宣言とそのディレクトリ配置が異なっていても、特にエラーにならないことに気づきました。

具体的には、以下のようなプロジェクトがあったとき、

[code]

    pom.xml
    src/main/java/foo/App.java
    
[/code]

App.java のパッケージ宣言が、 `package bar.piyo;` であったとしても、問題なく `mvn compile`
ができて、`target/classes/bar/piyo/App.class`が生成されることを確認しました。

このように、パッケージ宣言と、ソースファイルのフォルダ配置が不一致となっている場合には、ビルドを失敗させるようにしたいのですが、これを実現する方法はありますでしょうか。


CC BY-SA 3.0
2015-09-28T14:39:59.443
17034
2015-09-28T17:33:44.047
754
question
java maven
パッケージ宣言とフォルダ配置が異なるソースファイルをエラーとして検知するには


いくつか調べた結果、eclipse のコンパイラを利用するようにすれば、エラーを出力できました。  
以下を pom に追加。

[code]

    <build>
      <plugins>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.1</version>
          <configuration>
            <compilerId>eclipse</compilerId>
            <source>1.7</source>
            <target>1.7</target>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>org.codehaus.plexus</groupId>
              <artifactId>plexus-compiler-eclipse</artifactId>
              <version>2.3</version>
            </dependency>
          </dependencies>
        </plugin>
      </plugins>
    </build>
    
[/code]

参考URL: <http://qiita.com/ko2ic/items/331d7c1c02f60d24fe65>


CC BY-SA 3.0
2015-09-28T17:33:44.047
17039
2015-09-28T17:33:44.047
754
17034
answer