Maven更新项目后项目结构发生变化,源文件夹的包含和排除模式也发生变化
Project structure changed after Maven update project, Inclusion and exclusion patterns to source folder changed too
这是最初开发的项目结构:
src/
src/main/java
com.company.project.module1.bean
com.company.project.module1.controller
com.company.project.module1.service
com.company.project.module1.dao
src/main/resources
src/test/
src/test/resources
点击Maven --> "Update Project"项目后,完整的项目结构改变如下:
src/
com.company.project.module1.bean
com.company.project.module1.controller
com.company.project.module1.service
com.company.project.module1.dao
src/main/java
com.company.project.module1.bean
com.company.project.module1.controller
com.company.project.module1.service
com.company.project.module1.dao
src/main/resources
src/test/
src/test/resources
所有 java class 文件 "copied" 放入 src/ 文件夹。
当我检查项目属性时,这些配置位于 "Java Build Path" --> "source"--> src/:
在 "Update Project" 通过 Maven 配置之前:
included:**/*.java
excluded:src/main/java, src/main/resources, src/main/test, src/test/resources
"Update Project" 通过 Maven 配置后,这里是配置的结果更改:
included:**/*.java
excluded:(None)
哪个配置,Maven (pom.xml) 或 Spring 配置,负责项目结构的这种变化? settings/configuration 将引导它恢复到最初的项目结构。
(简短说明:Maven 和 Spring Nature "Enabled" 在项目中。符号 'S' 和 'M' 显示在项目文件夹中)
按照步骤项目 --> 右键单击 --> 属性 -->:
Java Build Path --> sources --> src --> Delete
src/main/java --> edit --> output folder: <project name>/target/classes
src/main/java --> edit --> included: **/*.java
src/main/java --> edit --> excluded: (None)
这些步骤已删除 src/ 文件夹并使 src/main/java 成为包含 java class 个源文件的基础源文件夹,这样就恢复了初始项目结构。
pom.xml 文件配置与此问题相关。由于 pom.xml 中的以下代码,它正在将所有 java 源文件复制到 src/ 文件夹。通过更改它,它将修复带有源文件夹的项目结构。
<build>
<sourceDirectory>src</sourceDirectory>
<resources>
<resource>
<directory>src</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
</build>
将此代码替换为以下代码:
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
</build>
这是最初开发的项目结构:
src/
src/main/java
com.company.project.module1.bean
com.company.project.module1.controller
com.company.project.module1.service
com.company.project.module1.dao
src/main/resources
src/test/
src/test/resources
点击Maven --> "Update Project"项目后,完整的项目结构改变如下:
src/
com.company.project.module1.bean
com.company.project.module1.controller
com.company.project.module1.service
com.company.project.module1.dao
src/main/java
com.company.project.module1.bean
com.company.project.module1.controller
com.company.project.module1.service
com.company.project.module1.dao
src/main/resources
src/test/
src/test/resources
所有 java class 文件 "copied" 放入 src/ 文件夹。
当我检查项目属性时,这些配置位于 "Java Build Path" --> "source"--> src/:
在 "Update Project" 通过 Maven 配置之前:
included:**/*.java
excluded:src/main/java, src/main/resources, src/main/test, src/test/resources
"Update Project" 通过 Maven 配置后,这里是配置的结果更改:
included:**/*.java
excluded:(None)
哪个配置,Maven (pom.xml) 或 Spring 配置,负责项目结构的这种变化? settings/configuration 将引导它恢复到最初的项目结构。
(简短说明:Maven 和 Spring Nature "Enabled" 在项目中。符号 'S' 和 'M' 显示在项目文件夹中)
按照步骤项目 --> 右键单击 --> 属性 -->:
Java Build Path --> sources --> src --> Delete
src/main/java --> edit --> output folder: <project name>/target/classes
src/main/java --> edit --> included: **/*.java
src/main/java --> edit --> excluded: (None)
这些步骤已删除 src/ 文件夹并使 src/main/java 成为包含 java class 个源文件的基础源文件夹,这样就恢复了初始项目结构。
pom.xml 文件配置与此问题相关。由于 pom.xml 中的以下代码,它正在将所有 java 源文件复制到 src/ 文件夹。通过更改它,它将修复带有源文件夹的项目结构。
<build>
<sourceDirectory>src</sourceDirectory>
<resources>
<resource>
<directory>src</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
</build>
将此代码替换为以下代码:
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
</build>