让我们说我有一个标准的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中进行显式配置,以便将其中的源代码考虑在内行家??
任何帮助都将不胜感激。
此致 贺
答案 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。