在maven项目中添加文件夹

时间:2013-07-23 16:14:22

标签: 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-plugin)以某种方式告诉maven,它还具有编译“src / main / clojure”下的源代码?

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

任何帮助都将不胜感激。

此致 贺

3 个答案:

答案 0 :(得分:1)

Maven项目通常使用单个编译器构建,该编译器在称为Maven的源文件夹的那些文件夹中查找其所有源文件。根据项目,可以自动添加这样的源文件夹,例如,的src / main / java中。如果使用不同的编译器,则可以自动添加其他文件夹,例如,的src /主/常规

有时,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>

答案 1 :(得分:0)

是的,maven需要“知道”这些目录的含义,尽管clojure构建插件可以按惯例使用该目录 - 例如参见:https://github.com/talios/clojure-maven-plugin

答案 2 :(得分:0)

Apache maven有一个Standard Directory Layout,它开箱即用。

要让maven了解除上述之外的任何其他结构,您必须在pom.xml中覆盖这些设置。

请查看POM引用的section