trecloux / yeoman-maven-plugin

Maven plugin for npm / bower / grunt-gulp build
Apache License 2.0
141 stars 36 forks source link

Failed to execute goal com.github.trecloux:yeoman-maven-plugin:0.5:build (default) on project jw: Error during : cmd /c grunt test --no-color: Process exited with an error: 6 (Exit value: 6) -> [Help 1] #27

Open ghost opened 8 years ago

ghost commented 8 years ago

I created new maven project archetype - jersey-quick-webapp , My pom.xml looks like--- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>com.mycompany</groupId>
<artifactId>jw</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>jw</name>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.glassfish.jersey</groupId>
            <artifactId>jersey-bom</artifactId>
            <version>${jersey.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet</artifactId>
    </dependency>
    <!-- uncomment this to get JSON support
    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-moxy</artifactId>
    </dependency> -->

    <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-servlet</artifactId>
        <version>${jetty.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-webapp</artifactId>
        <version>${jetty.version}</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>org.glassfish.jersey.test-framework.providers</groupId>
        <artifactId>jersey-test-framework-provider-bundle</artifactId>
        <type>pom</type>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <finalName>jw</finalName>
    <plugins>
        <plugin>    
            <groupId>com.github.trecloux</groupId>
            <artifactId>yeoman-maven-plugin</artifactId>
            <version>0.5</version>
            <executions>
                <execution>
                    <goals>
                        <goal>build</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.3</version>
            <configuration>
                <webResources>
                    <resource>
                        <directory>yo/dist</directory>
                    </resource>
                </webResources>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-clean-plugin</artifactId>
            <version>2.5</version>
            <configuration>
                <filesets>
                    <fileset>
                        <directory>yo/dist</directory>
                    </fileset>
                    <fileset>
                        <directory>yo/.tmp</directory>
                    </fileset>
                    <fileset>
                        <directory>yo/app/components</directory>
                    </fileset>
                    <fileset>
                        <directory>yo/node_modules</directory>
                    </fileset>
                </filesets>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.5.1</version>
            <inherited>true</inherited>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <includeScope>compile</includeScope>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-maven-plugin</artifactId>
            <version>${jetty.version}</version>
            <configuration>
                <contextPath>/</contextPath>
                <webApp>
                    <contextPath>/</contextPath>
                    <webInfIncludeJarPattern>.*/.*jersey-[^/]\.jar$</webInfIncludeJarPattern>
                </webApp>
                <war>${project.build.directory}/${project.build.finalName}.war</war>
            </configuration>
        </plugin>
    </plugins>
</build>

<properties>
    <jersey.version>2.22.1</jersey.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <jetty.version>9.0.6.v20130930</jetty.version>
</properties>

My gruntfile.js looks like ------

// Generated on 2015-11-23 using generator-angular 0.14.0 'use strict';

// # Globbing // for performance reasons we're only matching one level down: // 'test/spec/{,/}.js' // use this if you want to recursively match all subfolders: // 'test/spec/*/.js'

module.exports = function (grunt) { var proxySnippet = require('grunt-connect-proxy/lib/utils').proxyRequest; grunt.loadNpmTasks('grunt-connect-proxy'); // Time how long tasks take. Can help when optimizing build times require('time-grunt')(grunt);

// Automatically load required Grunt tasks require('jit-grunt')(grunt, { useminPrepare: 'grunt-usemin', ngtemplates: 'grunt-angular-templates', cdnify: 'grunt-google-cdn' });

// Configurable paths for the application var appConfig = { app: require('./bower.json').appPath || 'app', dist: 'dist' };

// Define the configuration for all the tasks grunt.initConfig({

// Project settings
yeoman: appConfig,

// Watches files for changes and runs tasks based on the changed files
watch: {
  bower: {
    files: ['bower.json'],
    tasks: ['wiredep']
  },
  js: {
  files: ['<%= yeoman.app %>/scripts/{,*/}*.js'],
  tasks: ['newer:jshint:all', 'newer:jscs:all'],
  options: {
    livereload: '<%= connect.options.livereload %>'
  }
},
jsTest: {
files: ['test/spec/{,*/}*.js'],
tasks: ['newer:jshint:test', 'newer:jscs:test', 'karma']

}, styles: { files: ['<%= yeoman.app %>/styles/{,/}.css'], tasks: ['newer:copy:styles', 'postcss'] }, gruntfile: { files: ['Gruntfile.js'] }, livereload: { options: { livereload: '<%= connect.options.livereload %>' }, files: [ '<%= yeoman.app %>/{,/}.html', '.tmp/styles/{,/}.css', '<%= yeoman.app %>/images/{,/}.{png,jpg,jpeg,gif,webp,svg}' ] } },

// The actual grunt server settings
connect: {
  proxies: [
  {
    context: '/webresources',
    host: 'localhost',
    port: 8080,
    https: false,
    changeOrigin: false
  }
  ],
  options: {
    port: 9000,
    // Change this to '0.0.0.0' to access the server from outside.
    hostname: 'localhost',
    livereload: 35729
  },
  livereload: {
    options: {
      open: true,
      middleware: function (connect) {
        return [
        proxySnippet,
        connect.static('.tmp'),
        connect().use(
          '/bower_components',
          connect.static('./bower_components')
          ),
        connect().use(
          '/app/styles',
          connect.static('./app/styles')
          ),
        connect.static(appConfig.app)
          ];
        }
      }
    },
    test: {
      options: {
        port: 9001,
        middleware: function (connect) {
          return [
          connect.static('.tmp'),
          connect.static('test'),
          connect().use(
            '/bower_components',
            connect.static('./bower_components')
            ),
          connect.static(appConfig.app)
          ];
        }
      }
    },
    dist: {
      options: {
        open: true,
        base: '<%= yeoman.dist %>'
      }
    }
  },

// Make sure there are no obvious mistakes
jshint: {
  options: {
    jshintrc: '.jshintrc',
    reporter: require('jshint-stylish')
  },
  all: {
    src: [
    'Gruntfile.js',
  '<%= yeoman.app %>/scripts/{,*/}*.js'
  ]
},
test: {
  options: {
    jshintrc: 'test/.jshintrc'
  },
src: ['test/spec/{,*/}*.js']

} },

// Make sure code styles are up to par
jscs: {
  options: {
    config: '.jscsrc',
    verbose: true
  },
  all: {
    src: [
    'Gruntfile.js',
  '<%= yeoman.app %>/scripts/{,*/}*.js'
  ]
},
test: {
src: ['test/spec/{,*/}*.js']

} },

// Empties folders to start fresh
clean: {
  dist: {
    files: [{
      dot: true,
      src: [
      '.tmp',
    '<%= yeoman.dist %>/{,*/}*',
  '!<%= yeoman.dist %>/.git{,*/}*'
  ]
}]

}, server: '.tmp' },

// Add vendor prefixed styles
postcss: {
  options: {
    processors: [
    require('autoprefixer-core')({browsers: ['last 1 version']})
    ]
  },
  server: {
    options: {
      map: true
    },
    files: [{
      expand: true,
      cwd: '.tmp/styles/',
    src: '{,*/}*.css',
    dest: '.tmp/styles/'
  }]
},
dist: {
  files: [{
    expand: true,
    cwd: '.tmp/styles/',
  src: '{,*/}*.css',
  dest: '.tmp/styles/'
}]

} },

// Automatically inject Bower components into the app
wiredep: {
  app: {
    src: ['<%= yeoman.app %>/index.html'],
    ignorePath:  /\.\.\//
  },
  test: {
    devDependencies: true,
    src: '<%= karma.unit.configFile %>',
    ignorePath:  /\.\.\//,
    fileTypes:{
      js: {
        block: /(([\s\t]*)\/{2}\s*?bower:\s*?(\S*))(\n|\r|.)*?(\/{2}\s*endbower)/gi,
        detect: {
          js: /'(.*\.js)'/gi
        },
        replace: {
          js: '\'{{filePath}}\','
        }
      }
    }
  }
}, 

// Renames files for browser caching purposes
filerev: {
  dist: {
    src: [
  '<%= yeoman.dist %>/scripts/{,*/}*.js',
'<%= yeoman.dist %>/styles/{,*/}*.css',

'<%= yeoman.dist %>/images/{,/}.{png,jpg,jpeg,gif,webp,svg}', '<%= yeoman.dist %>/styles/fonts/*' ] } },

// Reads HTML for usemin blocks to enable smart builds that automatically
// concat, minify and revision files. Creates configurations in memory so
// additional tasks can operate on them
useminPrepare: {
  html: '<%= yeoman.app %>/index.html',
  options: {
    dest: '<%= yeoman.dist %>',
    flow: {
      html: {
        steps: {
          js: ['concat', 'uglifyjs'],
          css: ['cssmin']
        },
        post: {}
      }
    }
  }
},

// Performs rewrites based on filerev and the useminPrepare configuration
usemin: {
html: ['<%= yeoman.dist %>/{,*/}*.html'],

css: ['<%= yeoman.dist %>/styles/{,/}.css'], js: ['<%= yeoman.dist %>/scripts/{,/}.js'], options: { assetsDirs: [ '<%= yeoman.dist %>', '<%= yeoman.dist %>/images', '<%= yeoman.dist %>/styles' ], patterns: { js: [[/(images\/[^''""]*.(png|jpg|jpeg|gif|webp|svg))/g, 'Replacing references to images']] } } },

// The following *-min tasks will produce minified files in the dist folder
// By default, your `index.html`'s <!-- Usemin block --> will take care of
// minification. These next options are pre-configured if you do not wish
// to use the Usemin blocks.
// cssmin: {
//   dist: {
//     files: {
//       '<%= yeoman.dist %>/styles/main.css': [
//         '.tmp/styles/{,*/}*.css'
//       ]
//     }
//   }
// },
// uglify: {
//   dist: {
//     files: {
//       '<%= yeoman.dist %>/scripts/scripts.js': [
//         '<%= yeoman.dist %>/scripts/scripts.js'
//       ]
//     }
//   }
// },
// concat: {
//   dist: {}
// },

imagemin: {
  dist: {
    files: [{
      expand: true,
      cwd: '<%= yeoman.app %>/images',
    src: '{,*/}*.{png,jpg,jpeg,gif}',
    dest: '<%= yeoman.dist %>/images'
  }]
}

},

svgmin: { dist: { files: [{ expand: true, cwd: '<%= yeoman.app %>/images', src: '{,/}.svg', dest: '<%= yeoman.dist %>/images' }] } },

htmlmin: { dist: { options: { collapseWhitespace: true, conservativeCollapse: true, collapseBooleanAttributes: true, removeCommentsFromCDATA: true }, files: [{ expand: true, cwd: '<%= yeoman.dist %>', src: ['*.html'], dest: '<%= yeoman.dist %>' }] } },

ngtemplates: { dist: { options: { module: 'yoJaxrsTutorialApp', htmlmin: '<%= htmlmin.dist.options %>', usemin: 'scripts/scripts.js' }, cwd: '<%= yeoman.app %>', src: 'views/{,/}.html', dest: '.tmp/templateCache.js' } },

// ng-annotate tries to make the code safe for minification automatically
// by using the Angular long form for dependency injection.
ngAnnotate: {
  dist: {
    files: [{
      expand: true,
      cwd: '.tmp/concat/scripts',
      src: '*.js',
      dest: '.tmp/concat/scripts'
    }]
  }
},

// Replace Google CDN references
cdnify: {
  dist: {
    html: ['<%= yeoman.dist %>/*.html']
  }
},

// Copies remaining files to places other tasks can use
copy: {
  dist: {
    files: [{
      expand: true,
      dot: true,
      cwd: '<%= yeoman.app %>',
      dest: '<%= yeoman.dist %>',
      src: [
      '*.{ico,png,txt}',
      '*.html',
    'images/{,*/}*.{webp}',
  'styles/fonts/{,*/}*.*'
  ]
}, {
  expand: true,
  cwd: '.tmp/images',
  dest: '<%= yeoman.dist %>/images',
  src: ['generated/*']
}, {
  expand: true,
  cwd: 'bower_components/bootstrap/dist',
  src: 'fonts/*',
  dest: '<%= yeoman.dist %>'
}]

}, styles: { expand: true, cwd: '<%= yeoman.app %>/styles', dest: '.tmp/styles/', src: '{,/}.css' } },

// Run some tasks in parallel to speed up the build process
concurrent: {
  server: [
  'copy:styles'
  ],
  test: [
  'copy:styles'
  ],
  dist: [
  'copy:styles',
  'imagemin',
  'svgmin'
  ]
},

// Test settings
karma: {
  unit: {
    configFile: 'test/karma.conf.js',
    singleRun: true
  }
}

});

grunt.registerTask('serve', 'Compile then start a connect web server', function (target) { if (target === 'dist') { return grunt.task.run(['build', 'connect:dist:keepalive']); }

grunt.task.run([ 'clean:server', 'wiredep', 'concurrent:server', 'postcss:server', 'configureProxies', 'connect:livereload', 'watch' ]); });

grunt.registerTask('server', 'DEPRECATED TASK. Use the "serve" task instead', function (target) { grunt.log.warn('The server task has been deprecated. Use grunt serve to start a server.'); grunt.task.run(['serve:' + target]); });

grunt.registerTask('test', [ 'clean:server', 'configureProxies', 'wiredep', 'concurrent:test', 'postcss', 'connect:test', 'karma' ]);

grunt.registerTask('build', [ 'clean:dist', 'configureProxies', 'wiredep', 'useminPrepare', 'concurrent:dist', 'postcss', 'ngtemplates', 'concat', 'ngAnnotate', 'copy:dist', 'cdnify', 'cssmin', 'uglify', 'filerev', 'usemin', 'htmlmin' ]);

grunt.registerTask('default', [ 'newer:jshint', 'newer:jscs', 'test', 'build' ]); };

While building with dependency in my netbeans ,I m continously getting following error --

ailed to execute goal com.github.trecloux:yeoman-maven-plugin:0.5:build (default) on project jw: Error during : cmd /c grunt test --no-color: Process exited with an error: 6 (Exit value: 6) -> [Help 1]

jw is my project name ,How can i resolve this issue .

requiemforameme commented 8 years ago

Do you have Grunt installed globally with npm install -g grunt-cli?

trecloux commented 8 years ago

Can you launch grunt test manually and check the output ?