在我的项目中,我有一个源代码生成器,它依赖于大量的java代码来构建一个java源代码,然后存储为字符串。通常我会将字符串写入.java文件,但我最近开始将项目切换到Maven,我正在寻找一种方法让src文件成为目标文件夹的一部分,因此它可以用作依赖项为另一个maven项目。
作为构建工具的Maven具有模块中目录布局的约定(如src/main/java
,src/main/resources
,您可能已经看过这些东西)。在编译阶段,所有编译的类都被放入一个名为target
的文件夹中。之后,在package
阶段,jar在这个target
文件夹中创建。
现在,对于生成的源,还有一种约定,尽管可能不太为人所知:
如果您生成源,则应将它们放入:
target/generated-sources
执行此操作时,IDE(至少IntelliJ)将使用它们作为源文件。
maven中的源生成过程通常是从连接到早期阶段之一的maven插件触发的。然后,当涉及package
阶段时,这些源将被添加到jar中,就像编译为二进制源的任何其他.class文件一样。