src/main/webapp directory not recognized by Eclips

2019-03-14 15:18发布

I use m2eclipse to import Maven Java projects in Eclipse.

It fails to recognize src/main/webapp as a source directory.

Graphically in the package explorer (or when I look into Java-Build-Path in the project's properties),
this directory isn't in the list of sources folder (while src/main/java or src/main/resources do).

To access it, I have to look directly into the src/ directory, and start unfolding... Not very convenient!

However, if I run maven install, the resources are copied to the correct directory.
(example : src/main/webapp/index.jsp to target/mywar/index.jsp)

Questions

  1. Is this a correct behavior ? (I was thinking it could be treated as other resources ...)
  2. Could I fix it?
  3. I wonder if there are other drawbacks for this situation, that I would not be aware of right now?

9条回答
我只想做你的唯一
2楼-- · 2019-03-14 15:51

Well you just have to mark the src/main/webapp as an Eclipse src folder:

right click webapp folder --> build path --> use as source folder

Don't think you can easily change this behavior without any ugly hacks, the src marking is just something Eclipse specific that it uses to configure its classpath etc.

查看更多
Bombasti
3楼-- · 2019-03-14 15:55

Instead of adding /src/main/webapp as a source folder in the java build path, add it as a folder to include in the deployment assembly:

MyProject -> properties -> Deployment Assembly: Add "/src/main/webapp" deploys to "/"

查看更多
不美不萌又怎样
4楼-- · 2019-03-14 15:58
  1. Is this a correct behavior ? (I was thinking it could be treated as other resources ...)
  2. Could I fix it?
  3. I wonder if there are other drawbacks for this situation, that I would not be aware of right now?
  1. Yes, to me this is the correct behavior.
  2. It doesn't really make sense for src/main/webapp to be a source folder, it doesn't contain compilable source files.
  3. I don't know. I guess it depends on your expectations :)

That said, m2eclipse made a contribution that allows to make src/main/webapp available at the top level with a specific "Web Resources" label, something like this:

alt text

This could be a solution for your concern (the not convenient folding).

查看更多
SAY GOODBYE
5楼-- · 2019-03-14 16:00

In my case, Eclipse failed to recognise src/main/webapp as the Web Resources folder. I resolved it by:

  1. Deleting the project
  2. Restarting eclipse
  3. Taking a fresh update of the Maven project form the SVN.
查看更多
Root(大扎)
6楼-- · 2019-03-14 16:00

One solution is to exploit m2e support for build helper maven plugin and declare src/main/webapp as an additioanl resource path. This also makes eclipse copy saved resources to the build target folder structure.

        <!-- help eclipse identify the webapp folder as a resource folder: -->
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>3.0.0</version>
            <executions>
                <execution>
                    <id>add-resource</id>
                    <phase>generate-resources</phase>
                    <goals>
                        <goal>add-resource</goal>
                    </goals>
                    <configuration>
                        <resources>
                            <resource>
                                <directory>src/main/webapp</directory>
                                <targetPath>${project.build.directory}/${project.build.finalName}</targetPath>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
查看更多
Root(大扎)
7楼-- · 2019-03-14 16:00

I can think of a reason.

I'm using Maven for developing a GWT project in Eclipse. In my configuration, the src/main/webapp directory contains the HTML and CSS files that I have to refer to as part of my development effort, even though they're not "compilable" files.

Being able to get to them directly as opposed to diving into the src/ folder is a plus. And defining it in the POM so that it gets set up that way means I don't have to manually keep adding the folder every time I run eclipse:eclipse.

查看更多
登录 后发表回答