如何设置 IDEA 执行编译后任务?

Posted

技术标签:

【中文标题】如何设置 IDEA 执行编译后任务?【英文标题】:How to set up IDEA to execute post compilation task? 【发布时间】:2015-02-14 16:13:16 【问题描述】:

编译完成后尝试运行一些代码时,我在我的 sbt build 中写了以下内容:

compile in Compile <<= (compile in Compile) map  x=>
    // post-compile work
    doFoo()
    x

如果我从命令行运行 sbt compile 效果很好,但当我从 IntelliJ IDEA 构建时不会执行。

有什么方法可以让 IntelliJ IDEA 运行我的编译后步骤?

【问题讨论】:

我不知道运行该编译后步骤的方法,但在某些情况下,作为获得类似行为的解决方法,您可以使用 Before launch from Run/Debug Configurations SBT 任务执行。见SBT plugin documentation。 我相信是这样,因为我在 build.properties 中指定了版本。但不管 SBT 版本如何,IDEA 似乎没有使用编译步骤,而是使用了其他方法 【参考方案1】:

不幸的是,IntelliJ IDEA 支持的唯一方式似乎是通过 Ant。

见VS post build event command line equivalent in IntelliJ IDEA?。

另外,如果你走这条路,你可能有兴趣使用ant4sbt。

【讨论】:

【参考方案2】:

IDEA 具有运行/调试配置。

Before Launch 选项中,通常我们将Make 作为默认操作。

只需在 Make 之后添加 Run external Tool 操作即可。我们可以定义任意数量的动作。

外部工具可以调用SBT

或者我们可以删除Make并调用SBT来处理所有的过程。这样做的唯一不便之处是编译时出现语法错误不太舒服。

【讨论】:

以上是关于如何设置 IDEA 执行编译后任务?的主要内容,如果未能解决你的问题,请参考以下文章

idea debug调试中如何只执行当前所调试的类和方法,执行完不进入调用方法和jar中

如何设置myeclipse的jvm启动参数

如何修复“任务 'compileJava' 执行失败”错误。 (使用 Intellij Idea 和 Gradle)

如何设置win2008的定时任务

idea编译下面问题,如何解决?

idea编译调用的是哪个程序