Java 在maven项目中添加文件夹

Java 在maven项目中添加文件夹,java,eclipse,maven,clojure,maven-2,Java,Eclipse,Maven,Clojure,Maven 2,假设我有一个标准的maven项目,它有四个标准目录 src/main/java src/main/resources src/test/java src/test/resources 现在让我们假设,我在“src/main”下创建了一个名为“clojure”的子目录。 那么,“src/main/clojure”下的源文件是否在构建运行时自动编译,或者我是否必须通过配置某个插件(例如build helper maven插件)告诉maven,它还必须在“src/main/clojure”下编译源文

假设我有一个标准的maven项目,它有四个标准目录

src/main/java
src/main/resources
src/test/java
src/test/resources
现在让我们假设,我在“src/main”下创建了一个名为“clojure”的子目录。 那么,“src/main/clojure”下的源文件是否在构建运行时自动编译,或者我是否必须通过配置某个插件(例如build helper maven插件)告诉maven,它还必须在“src/main/clojure”下编译源文件

换句话说,创建任何不是“../java”或“../resources”的文件夹是否需要在pom.xml中进行显式配置,以便maven考虑其中的源

任何帮助都将不胜感激

问候,, Horace

是的,maven需要“知道”这些目录的含义,尽管clojure构建插件可能会按照约定使用该目录-例如,请参见:

ApacheMaven有一个现成的目录

要使maven理解上述结构以外的任何其他结构,您必须在
pom.xml
中覆盖这些设置


看看这个POM参考。

一个Maven项目通常是用一个编译器构建的,它会在那些称为Maven源文件夹的文件夹中查找其所有源文件。根据项目的不同,可以自动添加此类源文件夹,例如src/main/java。如果使用不同的编译器,可能会自动添加其他文件夹,例如src/main/groovy

有时IDE中的Maven集成(如Eclipse或IntelliJ)不会为非Java项目选择文件夹,即使POM中有正确的Maven插件,例如用于构建Groovy项目

因此,即使命令行上的构建可以很好地与src/main/groovy中的文件一起运行,但在IDE中导入项目时,该文件夹可能不会被检测为源文件夹。在这种情况下,您可能需要添加其他源文件夹,例如

<plugin>
  <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.5</version>
    <executions>
      <execution>
        <id>add-source</id>
        <phase>generate-sources</phase>
        <goals>
          <goal>add-source</goal>
        </goals>
        <configuration>
          <sources>
            <source>src/main/groovy</source>
          </sources>
        </configuration>
      </execution>
    </executions>
  </plugin>

org.codehaus.mojo
构建助手maven插件
1.5
添加源
生成源
添加源
src/main/groovy