使用 Maven 安装全局安装的 Bower 组件

Using Maven to install Bower components with Bower installed globally

我使用 NPM 在全球范围内安装了 Bower。 在我的 Maven 项目中,我有一个 bower.json 文件,我正在使用 exec-maven-plugin 在构建时安装 Bower 组件,但是它失败了,因为它 "cannot run the program 'bower' in directory" 这是有道理的,因为 Bower 没有在本地安装在项目目录中。

但是我想使用 Bower 的全球版本,所以我的所有项目中都没有单独的 Bower 程序,如果我转到终端中的目录并手动运行 'bower install',它就可以工作。

问题:我希望 Maven 使用我的全局 Bower 版本以避免我在每个项目中都有 Bower 的重复副本,我该怎么做?

这是运行插件和执行的 POM 文件中的代码:

 <plugin>

  <groupId>org.codehaus.mojo</groupId>
  <artifactId>exec-maven-plugin</artifactId>
  <version>1.3.2</version>

  <executions>

    <execution>
      <id>exec-bower-install</id>

      <phase>generate-sources</phase>
      <configuration>

        <executable>bower</executable>

        <arguments>
          <argument>install</argument>
        </arguments>

      </configuration>
      <goals>
        <goal>exec</goal>
      </goals>
    </execution>

  </executions>
</plugin>

配置可执行文件属性指向bower可执行文件的完整目录,例如:

 <executable>c:/bower_directory/bower</executable>

不要忘记 workingDirectory 并将您的 bower.json 放入根文件夹

<plugin>
   <groupId>org.codehaus.mojo</groupId>
   <artifactId>exec-maven-plugin</artifactId>
   <executions>
     <execution>
     <phase>generate-sources</phase>
     <goals>
      <goal>exec</goal>
     </goals>
     </execution>
   </executions>
   <configuration>
     <executable>bower</executable>
     <arguments>
      <argument>install</argument>
     </arguments>
     <workingDirectory>${basedir}/src/main/webapp</workingDirectory>
   </configuration>
</plugin>

经过大量测试,我发现这是我的 IDE 的问题,出于某种原因,Netbeans 在插件执行期间尝试构建项目时给我一个错误,但是当我直接从命令行 运行 Maven 项目,它构建!