Intellij IDEA 13-使用最新JS文件的工件构建过程(通过grunt构建)



Intellij(13)中是否可以执行grunt build(shell命令)作为工件构建过程的一部分,以便要部署的工件包含最新的JS/CSS/HTML文件?我看到'Run Ant target'看起来像是要执行shell命令,但我没有使用ant(我也不想)?

我相信IntelliJ正在使用Ant作为所有其他工具的适配器,因为使用它几乎可以运行任何东西。

只需将以下build.xml添加到您的项目中即可。

<project name="grunt" default="build">
<target name="build">
<exec executable="grunt">
<arg value="build"/>          
</exec>
</target>
</project>

当我对同样的问题感兴趣时,我偶然发现了这个问题。我使用IntelliJ Idea已经十多年了。现在,当我开始使用Angular、NodeJS/NPM和Grunt构建时,我真的希望能够继续无缝地从IDE构建和启动我的开发工件,而无需任何手动步骤来执行Grunt/browsrify,即使这"只是"在构建之前再点击一次按钮。所以…

作为工件构建过程的一部分,在IntelliJ Idea中触发Grunt任务执行的一个解决方案是添加exec-maven-plugin并将其绑定到执行阶段,例如prepare-package,很可能是在一些单独的配置文件中。类似这样的东西:

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>grunt</id>
<phase>prepare-package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>grunt${script.extension}</executable>
<workingDirectory>angular-app</workingDirectory>
<arguments>
<argument>--no-color</argument>
<argument>${grunt.task}</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>

现在,在"Maven Projects"工具窗口中,您可以右键单击列表中相应的生命周期阶段,并标记为"重建前执行"。

这应该可以完成任务,并满足您不使用Ant的要求

但是在我的情况下(尽管我很长一段时间都不使用Ant作为构建系统,也不太喜欢Ant),我决定采用@kukido在他的回答中提出的方法。通过这种方式,我没有修改Maven以适应IDE,我认为这在概念上是不正确的,因为构建系统(在我的案例中是Maven)不应该受到IDE强加的任何东西的影响。我真的认为,像IntelliJ Idea这样一个伟大的工具可以更进一步,并提供在IDE中准备工件的"预过程"上运行更多任意命令/目标的可能性。现在,我将在这里使用Ant作为一个瘦适配器,并保持我的POM干净。

最新更新