为所有项目生成源和更新文件夹

Bar*_*ron 10 ide git intellij-idea maven

有一个 IntelliJ 命令的名称与我的标题完全一样:Generate Sources and Update Folders For All Projects。那有什么作用?在询问它的作用之前点击它可能犯了一个巨大的错误。现在已经运行了半个多小时。不会停止,我太害怕停止它。

我想要做的是切换到另一个 GIT 分支,但工作区本身出现问题并导致一些构建错误,所以我想我会点击所有看起来像回收图标的东西。所以我在 Maven 面板上按下了这个:为所有项目生成源和更新文件夹.

它有什么特别之处吗?它显然比

mvn clean install -DskipTests
Run Code Online (Sandbox Code Playgroud)

我还需要什么?实际上直到现在我什至不需要其他任何东西。

附:(现在已经完成了,但我仍然很好奇那个功能到底是什么。)

Cra*_*der 2

根据IntelliJ IDEA Maven 常见问题解答

为了使生成的源自动导入为源文件夹,请配置相应的插件,以便将它们放入 target/ generated-sources/ 中,其中 subdir 是您喜欢的任何文件夹名称。subdir 文件夹对于区分来自不同工具的源以及排除一些特殊生成的源(例如groovy 存根)是必要的。

请注意,即使您在该文件夹本身的 target/ generated-sources 下手动配置了一些源文件夹,IDEA 也会根据您的 pom.xml 重写它们。

任何时候你想要生成源,你只需执行相应的目标,绑定生成(通常是generate-sources,generate-test-sources)。之后 IDEA 将选取新文件夹并进行设置。

根据Maven 文档

让我们通过一个简短的示例来尝试提供帮助。要生成源,您必须首先有一个参与生成源阶段的插件,例如 ANTLR4 Maven 插件。

所以这一切都很好,我们有一个插件想要从 Antlr4 语法生成一些源代码,但是我们如何使用它。您需要指定要在 POM 中使用它:如果您输入 mvncompile,Maven 将遍历生命周期并最终进入生成源阶段,并看到您配置了一个想要参与该阶段的插件,并且ANTLR4 Maven 插件将使用您给定的配置执行。此外,在编译过程中,您可以观察到所有生成的代码(来自语法文件)将自动编译,无需补充配置。

正如您所看到的,“生成源”操作会为您中生成任何源的generate-sources任何插件运行 Maven 阶段。pom.xml