Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mojo documentation needs at new home - existing link is invalid #79

Open
phansson opened this issue Dec 14, 2016 · 2 comments · May be fixed by #146
Open

Mojo documentation needs at new home - existing link is invalid #79

phansson opened this issue Dec 14, 2016 · 2 comments · May be fixed by #146

Comments

@phansson
Copy link

According to README.md the documentation for the plugin can be found at codehaus.org. Problem is that this site has been closed down, well mostly.

Hence a new home for the mojo documentation is required. GitHub Pages perhaps ?

@rolandoisidoro
Copy link

rolandoisidoro commented Feb 14, 2020

I can retrieve information running mvn help:describe -DgroupId=com.vaadin -DartifactId=vaadin-maven-plugin -Ddetail. Is there any additional documentation resource for the plugin?

Pasting the output of the aforementioned cli command here for future reference. This could be easily included in the repository wiki.

Name: Vaadin Maven plugin
Description: Vaadin Platform
Group Id: com.vaadin
Artifact Id: vaadin-maven-plugin
Version: 14.1.1
Goal Prefix: vaadin

This plugin has 6 goals:

vaadin:build-frontend
  Description: Goal that builds the frontend bundle. It performs the
    following actions when creating a package:
    - Update Constants.PACKAGE_JSON file with the NpmPackage annotations
      defined in the classpath,
    - Copy resource files used by flow from `.jar` files to the `node_modules`
      folder
    - Install dependencies by running npm install
    - Update the FrontendUtils.IMPORTS_NAME file imports with the JsModule
      Theme and JavaScript annotations defined in the classpath,
    - Update FrontendUtils.WEBPACK_CONFIG file.
  Implementation: com.vaadin.flow.plugin.maven.BuildFrontendMojo
  Language: java
  Bound to phase: prepare-package

  Available parameters:

    compatibilityMode (Default: ${vaadin.bowerMode})
      Alias: bowerMode
      Whether or not we are running in compatibility mode.

    frontendDirectory (Default: ${project.basedir}/frontend)
      A directory with project's frontend source files.

    frontendResourcesDirectory (Default:
    ${project.basedir}/src/main/resources/META-INF/resources/frontend)
      Defines the project frontend directory from where resources should be
      copied from for use with webpack.

    generateBundle (Default: true)
      Whether to generate a bundle from the project frontend sources or not.

    generatedFolder (Default:
    ${project.build.directory}/frontend/)
      The JavaScript file used as entry point of the application, and which is
      automatically updated by flow by reading java annotations.

    generateEmbeddableWebComponents (Default: true)
      Whether to generate embeddable web components from WebComponentExporter
      inheritors.

    npmFolder (Default: ${project.basedir})
      The folder where `package.json` file is located. Default is project root
      dir.

    optimizeBundle (Default: true)
      Whether to use byte code scanner strategy to discover frontend
      components.

    productionMode (Default: ${vaadin.productionMode})
      Whether or not we are running in productionMode.

    runNpmInstall (Default: true)
      Whether to run npm install after updating dependencies.

    webpackOutputDirectory (Default:
    ${project.build.outputDirectory}/META-INF/VAADIN/)
      The folder where webpack should output index.js and other generated
      files.

vaadin:copy-production-files
  Description: Goal that copies all production mode files into the
    CopyProductionFilesMojo.copyOutputDirectory directory. Files are copied
    from CopyProductionFilesMojo.frontendWorkingDirectory directory, WebJars
    and regular jars, refer to ProductionModeCopyStep for details.
  Implementation: com.vaadin.flow.plugin.maven.CopyProductionFilesMojo
  Language: java
  Bound to phase: generate-resources

  Available parameters:

    compatibilityMode (Default: ${vaadin.bowerMode})
      Alias: bowerMode
      Whether or not we are running in compatibility mode.

    copyOutputDirectory (Default:
    ${project.build.directory}/frontend/)
      Required: true
      Target directory where the files that are used for the production build
      will be copied to.

    excludes (Default:
    **/LICENSE*,**/LICENCE*,**/demo/**,**/docs/**,**/test*/**,**/.*,**/*.md,**/bower.json,**/package.json,**/package-lock.json)
      Required: true
      Files and directories that should not be copied.

    frontendWorkingDirectory
      User property: frontend.working.directory
      Directory from which the files for the production mode build should be
      copied from.

    productionMode (Default: ${vaadin.productionMode})
      Whether or not we are running in productionMode.

    webpackOutputDirectory (Default:
    ${project.build.outputDirectory}/META-INF/VAADIN/)
      The folder where webpack should output index.js and other generated
      files.

vaadin:migrate-to-p3
  Description: This goal migrates project from compatibility mode to NPM
    mode.
  Implementation: com.vaadin.flow.plugin.maven.MigrateMojo
  Language: java
  Bound to phase: process-classes

  Available parameters:

    annotationsRewrite (Default: ALWAYS)
      Allows to specify the strategy to use to rewrite HtmlImport/StyleSheet
      annotations in Java files.
      Three values are available:
      
      - ALWAYS : if chosen then annotation will be always rewritten regardless
        of migration of the import files content
      - SKIP : if chosen then neither annotation will be rewritten
      - SKIP_ON_ERROR : if chosen then annotation will be rewritten only if
        there are no errors during migration of imported files content

    frontendDirectory (Default: ${project.basedir}/frontend)
      A directory with project's frontend source files. The target folder for
      migrated files.

    ignoreModulizerErrors (Default: true)
      Stops the goal execution with error if modulizer has exited with not 0
      status.
      By default the errors are not fatal and migration is not stopped.

    keepOriginal (Default: false)
      Whether the original resource files should be preserved or removed.

    migrateFolder (Default: ${project.build.directory}/migration)
      A temporary directory where migration is performed.

    resources
      A list of directories with files to migrate.

vaadin:package-for-production
  Description: Goal that prepares all web files from
    PackageForProductionMojo.transpileEs6SourceDirectory for production mode:
    minifies, transpiles and bundles them.
  Implementation: com.vaadin.flow.plugin.maven.PackageForProductionMojo
  Language: java
  Bound to phase: process-classes

  Available parameters:

    autodetectTools (Default: false)
      User property: autodetectTools
      If true, attempts to detect frontend tools (Node, Yarn) in the system and
      use them for processing the frontend files.

    bundle (Default: true)
      Required: true
      User property: bundle
      If false sources will not be bundled.

    bundleConfiguration (Default:
    ${project.basedir}/bundle-configuration.json)
      User property: bundleConfiguration
      Set the bundle configuration json file.

    compatibilityMode (Default: ${vaadin.bowerMode})
      Alias: bowerMode
      Whether or not we are running in compatibility mode.

    es5OutputDirectoryName (Default: frontend-es5)
      Required: true
      Name of the ES5 directory.The default is frontend-es5.

    es6OutputDirectoryName (Default: frontend-es6)
      Required: true
      Name of the ES6 directory.The default is frontend-es6.

    fragments
      List of bundle fragments.

    hash (Default: true)
      Required: true
      User property: hash
      If false then the bundle will not receive a hash for the content. This
      will make the bundle not update on content change after it is cached in
      the browser.

    ignoreMavenProxies (Default: true)
      Required: true
      User property: ignoreMavenProxies
      If false then maven proxies will be used in the ProxyConfiguration.

    minify (Default: true)
      Required: true
      User property: minify
      If false the ES5 and ES6 code will not be minified. This will help in
      debugging if there are JS exception in runtime.

    nodePath
      Defines the path to node executable to use. If specified, nodeVersion
      parameter is ignored.

    nodeVersion (Default: v10.16.0)
      Defines the node version to download and use, if nodePath is not set. The
      default is v10.16.0.

    npmRegistryURL
      User property: npmRegistryURL
      Defines the URL of npm modules. Yarn will use the given NPM registry URL
      if valid, otherwise the default registry will be used.

    productionMode (Default: ${vaadin.productionMode})
      Whether or not we are running in productionMode.

    skipEs5 (Default: false)
      Required: true
      User property: skipEs5
      If true skip the transpilation of javascript from ES6 to ES5.

    transpileEs6SourceDirectory (Default:
    ${project.build.directory}/frontend/)
      Required: true
      Directory where the source files to use for transpilation are located.
      Note! This should match copyOutputDirectory configuration when using the
      `copy-production-files` goal.

    transpileOutputDirectory
      Target base directory where the transpilation output should be stored.
      The default is ${project.build.directory}/${project.build.finalName}.

    transpileWorkingDirectory (Default:
    ${project.build.directory}/)
      Required: true
      The directory where we process the files from. The default is
      ${project.build}.

    webComponentOutputDirectoryName (Default:
    vaadin-web-components)
      User property: webComponentOutputDirectoryName
      Set the web components module files output folder name. The default is
      vaadin-web-components. The folder is used to generate the web component
      module files.

    webpackOutputDirectory (Default:
    ${project.build.outputDirectory}/META-INF/VAADIN/)
      The folder where webpack should output index.js and other generated
      files.

    yarnNetworkConcurrency (Default: -1)
      Set yarn network concurrency.The default is -1.

    yarnPath
      Defines the path to yarn executable to use. If specified, yarnVersion
      parameter is ignored.

    yarnVersion (Default: v1.6.0)
      Defines the yarn version to download and use, if yarnVersion is not set.
      The default is v1.6.0.

vaadin:prepare-frontend
  Description: This goal checks that node and npm tools are installed, copies
    frontend resources available inside `.jar` dependencies to `node_modules`,
    and creates or updates `package.json` and `webpack.config.json` files.
  Implementation: com.vaadin.flow.plugin.maven.PrepareFrontendMojo
  Language: java
  Bound to phase: process-resources

  Available parameters:

    compatibilityMode (Default: ${vaadin.bowerMode})
      Alias: bowerMode
      Whether or not we are running in compatibility mode.

    frontendDirectory (Default: ${project.basedir}/frontend)
      A directory with project's frontend source files.

    generatedFolder (Default:
    ${project.build.directory}/frontend/)
      The folder where flow will put generated files that will be used by
      webpack.

    npmFolder (Default: ${project.basedir})
      The folder where `package.json` file is located. Default is project root
      dir.

    productionMode (Default: ${vaadin.productionMode})
      Whether or not we are running in productionMode.

    webpackGeneratedTemplate (Default: webpack.generated.js)
      Copy the `webapp.generated.js` from the specified URL. Default is the
      template provided by this plugin. Set it to empty string to disable the
      feature.

    webpackOutputDirectory (Default:
    ${project.build.outputDirectory}/META-INF/VAADIN/)
      The folder where webpack should output index.js and other generated
      files.

    webpackTemplate (Default: webpack.config.js)
      Copy the `webapp.config.js` from the specified URL if missing. Default is
      the template provided by this plugin. Set it to empty string to disable
      the feature.

vaadin:validate
  Description: This goal checks that node and npm tools are installed, copies
    frontend resources available inside `.jar` dependencies to `node_modules`,
    and creates or updates `package.json` and `webpack.config.json` files.
  Deprecated. use {@link PrepareFrontendMojo} instead
  Implementation: com.vaadin.flow.plugin.maven.PrepareFrontendMojo$VaildateMojo
  Language: java
  Bound to phase: process-resources

  Available parameters:

    compatibilityMode (Default: ${vaadin.bowerMode})
      Alias: bowerMode
      Whether or not we are running in compatibility mode.

    frontendDirectory (Default: ${project.basedir}/frontend)
      A directory with project's frontend source files.

    generatedFolder (Default:
    ${project.build.directory}/frontend/)
      The folder where flow will put generated files that will be used by
      webpack.

    npmFolder (Default: ${project.basedir})
      The folder where `package.json` file is located. Default is project root
      dir.

    productionMode (Default: ${vaadin.productionMode})
      Whether or not we are running in productionMode.

    webpackGeneratedTemplate (Default: webpack.generated.js)
      Copy the `webapp.generated.js` from the specified URL. Default is the
      template provided by this plugin. Set it to empty string to disable the
      feature.

    webpackOutputDirectory (Default:
    ${project.build.outputDirectory}/META-INF/VAADIN/)
      The folder where webpack should output index.js and other generated
      files.

    webpackTemplate (Default: webpack.config.js)
      Copy the `webapp.config.js` from the specified URL if missing. Default is
      the template provided by this plugin. Set it to empty string to disable
      the feature.

@maltem-za
Copy link

FWIW, here is a working link to the documentation for the GWT Maven Plugin: https://gwt-maven-plugin.github.io/gwt-maven-plugin/index.html

Information about the goals that the plugin provides can be found here: https://gwt-maven-plugin.github.io/gwt-maven-plugin/plugin-info.html

maltem-za added a commit to forTEXT/vaadin-maven-plugin that referenced this issue Dec 18, 2024
@maltem-za maltem-za linked a pull request Dec 18, 2024 that will close this issue
8 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants