Class JettyRunMojo

  • All Implemented Interfaces:
    org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo
    Direct Known Subclasses:
    JettyEffectiveWebXml, JettyRunDistro, JettyRunForkedMojo, JettyStartMojo

    @Mojo(name="run",
          requiresDependencyResolution=TEST)
    @Execute(phase=TEST_COMPILE)
    public class JettyRunMojo
    extends AbstractJettyMojo
    This goal is used in-situ on a Maven project without first requiring that the project is assembled into a war, saving time during the development cycle.

    The plugin forks a parallel lifecycle to ensure that the "compile" phase has been completed before invoking Jetty. This means that you do not need to explicitly execute a "mvn compile" first. It also means that a "mvn clean jetty:run" will ensure that a full fresh compile is done before invoking Jetty.

    Once invoked, the plugin can be configured to run continuously, scanning for changes in the project and automatically performing a hot redeploy when necessary. This allows the developer to concentrate on coding changes to the project using their IDE of choice and have those changes immediately and transparently reflected in the running web container, eliminating development time that is wasted on rebuilding, reassembling and redeploying.

    You may also specify the location of a jetty.xml file whose contents will be applied before any plugin configuration. This can be used, for example, to deploy a static webapp that is not part of your maven build.

    There is a reference guide to the configuration parameters for this plugin. Runs jetty directly from a maven project

    • Field Detail

      • DEFAULT_WEBAPP_SRC

        public static final java.lang.String DEFAULT_WEBAPP_SRC
      • useTestScope

        @Parameter(alias="useTestClasspath",
                   defaultValue="false")
        protected boolean useTestScope
        If true, the <testOutputDirectory> and the dependencies of <scope>test<scope> will be put first on the runtime classpath.
      • webXml

        @Parameter(defaultValue="${maven.war.webxml}",
                   readonly=true)
        protected java.lang.String webXml
        The default location of the web.xml file. Will be used if <webApp><descriptor> is not set.
      • classesDirectory

        @Parameter(defaultValue="${project.build.outputDirectory}",
                   required=true)
        protected java.io.File classesDirectory
        The directory containing generated classes.
      • scanClassesPattern

        @Parameter
        protected ScanPattern scanClassesPattern
        An optional pattern for includes/excludes of classes in the classesDirectory
      • testClassesDirectory

        @Parameter(defaultValue="${project.build.testOutputDirectory}",
                   required=true)
        protected java.io.File testClassesDirectory
        The directory containing generated test classes.
      • scanTestClassesPattern

        @Parameter
        protected ScanPattern scanTestClassesPattern
        An optional pattern for includes/excludes of classes in the testClassesDirectory
      • webAppSourceDirectory

        @Parameter(defaultValue="${maven.war.src}")
        protected java.io.File webAppSourceDirectory
        Root directory for all html/jsp etc files
      • scanTargets

        @Parameter
        protected java.io.File[] scanTargets
        List of files or directories to additionally periodically scan for changes. Optional.
      • scanTargetPatterns

        @Parameter
        protected ScanTargetPattern[] scanTargetPatterns
        List of directories with ant-style <include> and <exclude> patterns for extra targets to periodically scan for changes. Can be used instead of, or in conjunction with <scanTargets>.Optional.
      • warPluginInfo

        protected WarPluginInfo warPluginInfo
        maven-war-plugin reference
      • warArtifacts

        protected java.util.List<org.apache.maven.artifact.Artifact> warArtifacts
        List of deps that are wars
      • originalBaseResource

        protected Resource originalBaseResource
    • Constructor Detail

      • JettyRunMojo

        public JettyRunMojo()
    • Method Detail

      • execute

        public void execute()
                     throws org.apache.maven.plugin.MojoExecutionException,
                            org.apache.maven.plugin.MojoFailureException
        Specified by:
        execute in interface org.apache.maven.plugin.Mojo
        Overrides:
        execute in class AbstractJettyMojo
        Throws:
        org.apache.maven.plugin.MojoExecutionException
        org.apache.maven.plugin.MojoFailureException
        See Also:
        Mojo.execute()
      • checkPomConfiguration

        public boolean checkPomConfiguration()
                                      throws org.apache.maven.plugin.MojoExecutionException
        Verify the configuration given in the pom.
        Overrides:
        checkPomConfiguration in class AbstractJettyMojo
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • configureWebApplication

        public void configureWebApplication()
                                     throws java.lang.Exception
        Description copied from class: AbstractJettyMojo
        Subclasses should invoke this to setup basic info on the webapp
        Overrides:
        configureWebApplication in class AbstractJettyMojo
        Throws:
        java.lang.Exception - if unable to configure web application
      • configureScanner

        public void configureScanner()
                              throws org.apache.maven.plugin.MojoExecutionException
        Specified by:
        configureScanner in class AbstractJettyMojo
        Throws:
        org.apache.maven.plugin.MojoExecutionException
      • gatherScannables

        public void gatherScannables()
                              throws java.lang.Exception
        Throws:
        java.lang.Exception
      • restartWebApp

        public void restartWebApp​(boolean reconfigureScanner)
                           throws java.lang.Exception
        Specified by:
        restartWebApp in class AbstractJettyMojo
        Throws:
        java.lang.Exception
      • unpackOverlays

        public void unpackOverlays​(java.util.List<Overlay> overlays)
                            throws java.lang.Exception
        Throws:
        java.lang.Exception
      • unpackOverlay

        public Resource unpackOverlay​(Overlay overlay)
                               throws java.io.IOException
        Throws:
        java.io.IOException
      • getArtifactForOverlay

        protected org.apache.maven.artifact.Artifact getArtifactForOverlay​(OverlayConfig o,
                                                                           java.util.List<org.apache.maven.artifact.Artifact> warArtifacts)
      • getJavaBin

        protected java.lang.String getJavaBin()
      • fileSeparators

        public static java.lang.String fileSeparators​(java.lang.String path)