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

时间:2014-02-20 17:22:44

标签: shell build intellij-idea gruntjs

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

2 个答案:

答案 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清洁。