frontend-maven-plugin 不能 "bower install"

frontend-maven-plugin can't "bower install"

我有一个带有 "web" 模块的项目。在模块中,我有 "pom.xml" 和 frontend-maven-plugin:

<build>
        <plugins>
            <plugin>
                <groupId>com.github.eirslett</groupId>
                <artifactId>frontend-maven-plugin</artifactId>
                <version>0.0.26</version>
                <executions>
                    <execution>
                        <id>bower install</id>
                        <goals>
                            <goal>bower</goal>
                        </goals>
                        <phase>generate-sources</phase>
                        <configuration>
                            <arguments>install</arguments>
                            <installDirectory></installDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

Web 模块中还有 .bowerrc 文件:

{
    "directory":"src/main/resources/static/bower_components"
}

和bower.json文件:

{
  "name": "web",
  "ignore": [
    "**/.*",
    "node_modules",
    "bower_components",
    "test",
    "tests"
  ],
  "dependencies": {
    "jquery": "~2.1.4",
    "bootstrap": "~3.3.5"
  }
}

还有package.json文件:

{
    "name": "web",
    "devDependencies": {
        "bower": "~1.6.5"
    },
    "engines": {
        "node": ">=0.10.40"
    }
}

当我尝试 "mvn clean install" 时出现错误:

    [INFO] Running 'bower install' in /home/aleksandar/projects/cs230/web
    [ERROR] module.js:338
    [ERROR]     throw err;
    [ERROR]           ^
    [ERROR] Error: Cannot find module '/home/aleksandar/projects/cs230/web/node_modules/bower/bin/bower'
    [ERROR]     at Function.Module._resolveFilename (module.js:336:15)
    [ERROR]     at Function.Module._load (module.js:278:25)
    [ERROR]     at Function.Module.runMain (module.js:501:10)
    [ERROR]     at startup (node.js:129:16)
    [ERROR]     at node.js:814:3
    [INFO] ------------------------------------------------------------------------
    [INFO] Reactor Summary:
    [INFO] 
    [INFO] parent ............................................. SUCCESS [  0.349 s]
    [INFO] database ........................................... SUCCESS [  0.787 s]
    [INFO] test ............................................... SUCCESS [  0.812 s]
    [INFO] domain ............................................. SUCCESS [  2.103 s]
    [INFO] core-api ........................................... SUCCESS [  0.185 s]
    [INFO] jpa-repository ..................................... SUCCESS [  0.174 s]
    [INFO] core-impl .......................................... SUCCESS [  0.495 s]
    [INFO] web ................................................ FAILURE [  0.392 s]
    [INFO] file-repository .................................... SKIPPED
    [INFO] email .............................................. SKIPPED
    [INFO] app ................................................ SKIPPED
    [INFO] payment ............................................ SKIPPED
    [INFO] jobs ............................................... SKIPPED
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 5.984 s
    [INFO] Finished at: 2015-11-25T10:16:51+01:00
    [INFO] Final Memory: 39M/349M
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:0.0.26:bower (bower install) on project web: Failed to run task: 'bower install' failed. (error code 1) -> [Help 1]
    org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.github.eirslett:frontend-maven-plugin:0.0.26:bower (bower install) on project web: Failed to run task    org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
    Caused by: org.apache.maven.plugin.MojoFailureException: Failed to run task

com.github.eirslett.maven.plugins.frontend.mojo.AbstractFrontendMojo.execute(AbstractFrontendMojo.java:67)
        ... 22 more
    [ERROR] 
    [ERROR] 
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
    [ERROR] 
    [ERROR] After correcting the problems, you can resume the build with the command
    [ERROR]   mvn <goals> -rf :web

请帮忙解决这个问题我浪费了很多时间来解决这个问题。

  1. 设置您的 M3_HOME 路径以使用 "mvn clean install" 而无需 sudo
  2. 为项目中的 "target" 个文件夹和 Web 模块中的其他锁定文件夹设置 777 个权限
  3. 在 Web 模块的 pom.xml 文件中添加:

                <execution>
                    <id>install node and npm</id>
                    <goals>
                        <goal>install-node-and-npm</goal>
                    </goals>
                    <configuration>
                        <nodeVersion>v0.12.2</nodeVersion>
                        <npmVersion>2.7.6</npmVersion>
                    </configuration>
                </execution>
    
                <execution>
                    <id>npm install</id>
                    <goals>
                        <goal>npm</goal>
                    </goals>
                    <!-- Optional configuration which provides for running any npm command -->
                    <configuration>
                        <arguments>install</arguments>
                    </configuration>
                </execution>
    
                <execution>
                    <id>bower install</id>
                    <goals>
                        <goal>bower</goal>
                    </goals>
                    <configuration>
                        <arguments>install</arguments>
                    </configuration>
                </execution>
    

使用技巧:

        <execution>
            <id>npm install</id>
            <goals>
                <goal>npm</goal>
            </goals>
            <configuration>
                <arguments>install bower</arguments>
            </configuration>
        </execution>

Bower 似乎不在您的系统中。使用 npm 在您的计算机上全局安装 Bower:

npm install -g bower