java - 在 IntelliJ 插件构建期间运行代码生成器

标签 java build intellij-idea code-generation intellij-plugin

我正在开发一个作为 IntelliJ 插件分发的项目。该项目所需的一些源是在编译 Java 源文件之前通过代码生成步骤创建的。这些生成的文件不会放置在源代码管理中。

我有 Ant 任务和一个用于此代码生成器的 Maven 插件,可以将代码生成步骤可靠地集成到这两个构建系统中的任何一个中。

IntelliJ 如何在 IntelliJ 插件项目的构建过程中支持代码生成?

最佳答案

IntelliJ 插件部署间接支持代码生成:)

每次运行“构建”>“准备部署插件模块”时,IntelliJ 都会调用“Make”命令。

您需要做的是将Ant或Maven任务标记为“在Make之前执行”,然后每次运行Make或Prepare Plugin For Deployment时,都会执行所选任务。

enter image description here

How can I run the generate-sources phase? I don't see a way to include new phases under Lifecycle.

你的插件应该有generate-sources目标。

示例 POM

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mycompany.app</groupId>
    <artifactId>eclipser</artifactId>
    <version>1</version>
    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.modello</groupId>
                <artifactId>modello-maven-plugin</artifactId>
                <version>1.4</version>
                <executions>
                    <execution>
                        <configuration>
                            <models>
                                <model>src/main/mdo/maven.mdo</model>
                            </models>
                            <version>4.0.0</version>
                        </configuration>
                        <goals>
                            <goal>java</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

enter image description here

关于java - 在 IntelliJ 插件构建期间运行代码生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21341652/

相关文章:

java - 将 java 结果传递到命令行

java - 为什么 equals 方法需要一个 Object 参数?

java - 从现有源创建 Java 项目

java - Ant 构建不生成 jar 文件

android-studio - 从声纳分析中排除生成的类

java - 如何查看字符串的第一个字符是否为 ""(以“开头的字符串)

java - 从未使用分配的 boolean 值 - Java/Android Studio

c# - 使用 FluentValidation 的 Release Build 得到错误

maven - 在 Tomcat 上阅读电子邮件 : ClassNotFoundException: javax. mail.MessagingException

maven - 何时以及为什么需要重新导入所有 Maven 项目?