是否可以在Intellij(13)中执行grunt build
(shell命令)作为工件构建过程的一部分,以便要部署的工件包含最新的JS / CSS / HTML文件?我看到'Run Ant target'
看起来它会执行一个shell命令,但我不使用ant(我也不想)?
答案 0 :(得分:0)
我相信IntelliJ使用Ant作为所有其他工具的适配器,因为你可以用它运行任何东西。
只需将以下build.xml添加到项目中即可。
<project name="grunt" default="build">
<target name="build">
<exec executable="grunt">
<arg value="build"/>
</exec>
</target>
</project>
答案 1 :(得分:0)
当我对此完全一样感兴趣时,我偶然发现了这个问题。我使用IntelliJ Idea已有十多年了。现在,当我开始使用Angular,NodeJS / NPM并由Grunt构建时,我真的希望能够无缝地从IDE继续构建和启动我的开发工件,而无需任何手动步骤来执行Grunt / browserify,即使它是&#34;只是&#34;在构建之前再单击一个按钮。所以... 的
在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>
现在进入&#34; Maven Projects&#34;在工具窗口中,您可以右键单击列表中的相应生命周期阶段,并标记为&#34;在重建之前执行&#34;。
这应该可以完成工作并满足您不使用Ant的要求。
但是在我的情况下(虽然我现在很长时间没有使用Ant作为构建系统,也不太喜欢Ant),我决定采用@kukido在他的回答中。这样我就没有修改Maven以适应IDE,我认为这在概念上是不正确的,因为构建系统(在我的情况下是Maven)不应受IDE强加的任何影响。我真的认为像IntelliJ Idea这样的伟大工具可以更进一步,并提供在&#34; Pre-precess&#34;上运行更多任意命令/目标的可能性。在IDE中准备工件。现在我将在这里使用Ant作为瘦适配器并保持我的POM清洁。