37604


Eclipseでmavenプロジェクトを更新時、「Maven構成更新中のエラー
次のプロジェクトのmaven構成を更新できません：ネストできません。ネストを可能にするにはsrcから除外してください。」と表示されます。

対処法として下記3点を実施しました。  
１．"<http://qiita.com/makito/items/6ee52ba9796a8b3498c8>"の情報を参考に対応。  
２．srcフォルダにはサブフォルダがいくつかあり、pom.xml上の"uild-helper-maven-plugin"にてサブフォルダ設定済。  
３．Javaのビルドパスにサブフォルダの追加設定。

上記対応してもエラーは解消できません。  
何か他の対処方法があれば、ご教授頂けますでしょうか？

以上、よろしくお願いいたします。

【補足情報】  
フォルダ構造とpom.xmlについて補足しました。  
■フォルダ構造について  
mavenプロジェクト"eformadm"内のソースフォルダ"src"内に下記サブフォルダが複数存在します。

[code]

    \\eformadm\src\cycommon
    \\eformadm\src\core
    \\eformadm\src\web
    
[/code]

■pom.xmlについて

[code]

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>eformadm</groupId>
      <artifactId>eformadm</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <packaging>war</packaging>
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      </properties>
      <build>
        <finalName>eformadm</finalName>
        <sourceDirectory>src</sourceDirectory>
        <resources>
          <resource>
            <directory>res/conf</directory>
            <excludes>
              <exclude>**/*.java</exclude>
            </excludes>
          </resource>
          <resource>
            <directory>res/sql</directory>
            <excludes>
              <exclude>**/*.java</exclude>
            </excludes>
          </resource>
        </resources>
        <plugins>
          <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <configuration>
              <source>1.8</source>
              <target>1.8</target>
            </configuration>
          </plugin>
          <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.0.0</version>
            <configuration>
              <warSourceDirectory>WebContent</warSourceDirectory>
              <webXml>WebContent/WEB-INF/web.xml</webXml>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>3.0.0</version>
            <executions>
             <execution>
              <id>add-source</id>
              <phase>generate-sources</phase>
              <goals>
               <goal>add-source</goal>
              </goals>
              <configuration>
               <sources>
                <source>src/cycommon</source>
                <source>src/core</source>
                <source>src/web</source>
               </sources>
              </configuration>
             </execution>
           </executions>
          </plugin>
        </plugins>
      </build>
      <dependencies>
          <dependency>
              <groupId>asm</groupId>
              <artifactId>asm</artifactId>
              <version>3.3.1</version>
          </dependency>
          <dependency>
              <groupId>commons-collections</groupId>
              <artifactId>commons-collections</artifactId>
              <version>3.2.1</version>
          </dependency>
          <dependency>
              <groupId>org.apache.commons</groupId>
              <artifactId>commons-compress</artifactId>
              <version>1.13</version>
          </dependency>
          <dependency>
              <groupId>commons-fileupload</groupId>
              <artifactId>commons-fileupload</artifactId>
              <version>1.3.2</version>
          </dependency>
          <dependency>
              <groupId>commons-io</groupId>
              <artifactId>commons-io</artifactId>
              <version>2.4</version>
          </dependency>
          <dependency>
              <groupId>org.apache.commons</groupId>
              <artifactId>commons-lang3</artifactId>
              <version>3.4</version>
          </dependency>
          <dependency>
              <groupId>commons-logging</groupId>
              <artifactId>commons-logging</artifactId>
              <version>1.1.3</version>
          </dependency>
          <dependency>
              <groupId>org.freemarker</groupId>
              <artifactId>freemarker</artifactId>
              <version>2.3.23</version>
          </dependency>
          <dependency>
              <groupId>org.javassist</groupId>
              <artifactId>javassist</artifactId>
              <version>3.20.0-GA</version>
          </dependency>
          <dependency>
              <groupId>log4j</groupId>
              <artifactId>log4j</artifactId>
              <version>1.2.17</version>
          </dependency>
          <dependency>
              <groupId>org.mybatis</groupId>
              <artifactId>mybatis</artifactId>
              <version>3.3.0</version>
          </dependency>
          <dependency>
              <groupId>org.mybatis</groupId>
              <artifactId>mybatis-spring</artifactId>
              <version>1.2.3</version>
          </dependency>
          <dependency>
              <groupId>ognl</groupId>
              <artifactId>ognl</artifactId>
              <version>3.1.12</version>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-aop</artifactId>
              <version>4.1.6.RELEASE</version>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-beans</artifactId>
              <version>4.1.6.RELEASE</version>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-context</artifactId>
              <version>4.1.6.RELEASE</version>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-context-support</artifactId>
              <version>4.1.6.RELEASE</version>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-core</artifactId>
              <version>4.1.6.RELEASE</version>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-expression</artifactId>
              <version>4.1.6.RELEASE</version>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-jdbc</artifactId>
              <version>4.1.6.RELEASE</version>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-tx</artifactId>
              <version>4.1.6.RELEASE</version>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-web</artifactId>
              <version>4.1.6.RELEASE</version>
          </dependency>
          <dependency>
              <groupId>org.postgresql</groupId>
              <artifactId>postgresql</artifactId>
              <version>42.1.1</version>
          </dependency>
          <dependency>
              <groupId>org.apache.struts</groupId>
              <artifactId>struts2-core</artifactId>
              <version>2.5.10.1</version>
          </dependency>
          <dependency>
              <groupId>javax.servlet</groupId>
              <artifactId>javax.servlet-api</artifactId>
              <version>3.1.0</version>
          </dependency>
          <dependency>
              <groupId>org.apache.tomcat</groupId>
              <artifactId>tomcat-dbcp</artifactId>
              <version>7.0.78</version>
          </dependency>
          <dependency>
              <groupId>org.apache.struts</groupId>
              <artifactId>struts2-spring-plugin</artifactId>
              <version>2.5.10.1</version>
          </dependency>
          <dependency>
              <groupId>org.apache.struts</groupId>
              <artifactId>struts2-json-plugin</artifactId>
              <version>2.5.10.1</version>
          </dependency>
      </dependencies>
    </project>
    
[/code]


CC BY-SA 3.0
2017-08-30T05:11:13.620
37602
2017-08-30T06:32:36.090
25105
question
eclipse spring maven struts
Eclipseでmavenプロジェクトを更新時にエラーが表示される


質問文中に載せられている`pom.xml`では、`<sourceDirectory>src</sourceDirectory>`
で`src`ディレクトリをソースディレクトリと指定し、また、`build-helper-maven-plugin`設定によって`src`以下の
`src/cycommon`などもまたソースディレクトリとして指定するようになってしまっています。  
これがネストエラーと言われてしまう原因です。

実際には`src`はソースディレクトリとして指定しなくて良いはずなので、

  1. `pom.xml`のソースディレクトリ設定を修正(`src`ソースディレクトリ指定をやめる)し、
  2. その設定をEclipseに反映する

ことでエラーは消えると思われます。  
(実際には、2番だけ行えばEclipse上のエラーはなくなるでしょう。ただし、大元の`pom.xml`を直しておかないと、再インポートした際などに再現しかねません。)

* * *

`pom.xml`修正方法としては、私としては次のものが妥当であると考えます。

  * `src\cycommon`, `src\core`, `src\web`のうちひとつを(`src`指定を削除し、代わりに)`<sourceDirectory>`で設定する。残りの2つを従来どおり`build-helper-maven-plugin`で設定する。

別案としては、次の修正方法があるでしょう(末尾に記載した参考リンク先に書かれている方法)。

  * 単に`<sourceDirectory>src</sourceDirectory>` 行を `pom.xml`から削除する。削除することでデフォルトソースディレクトリ`src/main/java`が使用されるようになり、ネスト状態ではなくなる。また実際には`src/main/java`は存在しないので副作用は発生しない(意図しないものが追加でコンパイルされるようなことにはならない)。

* * *

Eclipse設定の修正については、プロジェクトプロパティの「Javaビルドパス」設定から`eformadm/src`を削除すればよいです。

あるいは一旦Eclipse設定を削除してしまって再度Eclipseに取り込んでも良いです(ただしEclipseプロジェクトに対し何か追加設定している場合、その設定は消えることに注意)。

* * *

参考:

  * [java - Eclipse Build Path Nesting Errors - Stack Overflow](https://stackoverflow.com/questions/10838109/eclipse-build-path-nesting-errors)
  * [eclipse - Maven suddenly wants src/ instead of src/main/java - Stack Overflow](https://stackoverflow.com/questions/34015536/maven-suddenly-wants-src-instead-of-src-main-java)


CC BY-SA 3.0
2017-08-30T06:32:36.090
37604
2017-08-30T06:32:36.090
2808
37602
answer