You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Eclipse 2026-03中maven-archetype-webapp 1.5未生成src/main/java的疑问

问题解答与永久解决方案

1. maven-archetype-webapp 1.5不生成src/main/java是否正常?

是正常的。这个Maven原型的原始定义就只包含pom.xml和src/main/webapp目录,设计初衷是服务于纯静态网页、JSP主导的简单Web项目,默认不包含Java源码和资源目录。你看到教程或导师环境自动生成,是因为旧版Eclipse的M2E插件会自动补全这些Maven标准目录,而非原型本身的特性。

2. 这是新版本Eclipse的变化吗?

是的。新版本Eclipse(4.39.0及以后)的M2E插件更严格遵循Maven原型的原始结构,不再自动为maven-archetype-webapp创建缺失的src/main/java等目录。旧版Eclipse会默认补全这些目录,这就是你看到差异的核心原因。

3. 是否存在Eclipse或Maven设置可让这些目录自动生成?

有两种永久解决方案,按需选择:

方案一:自定义Maven原型(最彻底)

基于官方原型修改,打造自己的Web项目骨架:

  • 先创建一个临时的maven-archetype-webapp项目,手动创建src/main/java、src/main/resources、src/test/java、src/test/resources目录
  • 执行命令:mvn archetype:create-from-project生成自定义原型
  • 进入生成的原型目录,执行mvn install将其安装到本地Maven仓库
  • 后续创建项目时选择自己的自定义原型,就能自动生成所有所需目录

方案二:通过Maven配置自动补全目录

修改Maven的settings.xml,添加全局profile,针对maven-archetype-webapp自动生成目录:

  1. 打开Eclipse的Window > Preferences > Maven > User Settings,找到你的settings.xml路径
  2. 编辑settings.xml,添加以下内容:
    <profiles>
        <profile>
            <id>webapp-auto-src</id>
            <activation>
                <activeByDefault>true</activeByDefault>
                <property>
                    <name>archetypeGroupId</name>
                    <value>org.apache.maven.archetypes</value>
                </property>
                <property>
                    <name>archetypeArtifactId</name>
                    <value>maven-archetype-webapp</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-resources-plugin</artifactId>
                        <version>3.3.1</version>
                        <executions>
                            <execution>
                                <id>create-source-dirs</id>
                                <phase>initialize</phase>
                                <goals>
                                    <goal>mkdirs</goal>
                                </goals>
                                <configuration>
                                    <mkdirs>
                                        <mkdir>src/main/java</mkdir>
                                        <mkdir>src/main/resources</mkdir>
                                        <mkdir>src/test/java</mkdir>
                                        <mkdir>src/test/resources</mkdir>
                                    </mkdirs>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
    
  3. 保存文件后,重启Eclipse。以后创建maven-archetype-webapp项目时,Maven会自动执行目录生成操作,Eclipse也会自动识别这些目录为源码/资源目录

临时快速修复(单次项目生效)

如果只是处理当前项目,可直接:

  1. 手动创建src/main/java等缺失目录
  2. 右键项目 > Maven > Update Project,Eclipse会自动将这些目录加入Java Build Path
  3. 或者在项目的pom.xml中添加build配置,明确指定源码目录:
    <build>
        <sourceDirectory>src/main/java</sourceDirectory>
        <testSourceDirectory>src/test/java</testSourceDirectory>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>
        <testResources>
            <testResource>
                <directory>src/test/resources</directory>
            </testResource>
        </testResources>
    </build>
    
    添加后执行Maven > Update Project即可生效

内容的提问来源于stack exchange,提问作者Ranjeet Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 05:42:09