4

我已经使用 NPM 在全球范围内安装了凉亭。在我的 Maven 项目中,我有一个 bower.json 文件,我使用 exec-maven-plugin 在构建时安装 bower 组件,但是它失败了,因为它“无法在目录中运行程序 'bower'”,这是有道理的,因为 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>
4

3 回答 3

2

不要忘记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>
于 2015-01-07T16:15:04.197 回答
2

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

于 2015-01-08T12:27:03.610 回答
1

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

 <executable>c:/bower_directory/bower</executable>
于 2015-01-07T15:03:02.007 回答