如何设置 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中