Class ProcessRemoteResourcesMojo

java.lang.Object
org.apache.maven.plugin.AbstractMojo
org.apache.maven.plugin.resources.remote.ProcessRemoteResourcesMojo
All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled, org.apache.maven.plugin.Mojo, org.apache.velocity.runtime.log.LogChute

@Mojo(name="process", defaultPhase=GENERATE_RESOURCES, threadSafe=true) public class ProcessRemoteResourcesMojo extends org.apache.maven.plugin.AbstractMojo implements org.apache.velocity.runtime.log.LogChute

Pull down resourceBundles containing remote resources and process the resources contained inside. When that is done, the resources are injected into the current (in-memory) Maven project, making them available to the process-resources phase.

Resources that end in ".vm" are treated as Velocity templates. For those, the ".vm" is stripped off for the final artifact name and it's fed through Velocity to have properties expanded, conditions processed, etc...

Resources that don't end in ".vm" are copied "as is".
  • Field Details

    • filterDelimiters

      @Parameter protected List<String> filterDelimiters

      In cases where a local resource overrides one from a remote resource bundle, that resource should be filtered if the resource set specifies it. In those cases, this parameter defines the list of delimiters for filterable expressions. These delimiters are specified in the form 'beginToken*endToken'. If no '*' is given, the delimiter is assumed to be the same for start and end.

      So, the default filtering delimiters might be specified as:

       <delimiters>
         <delimiter>${*}</delimiter>
         <delimiter>@</delimiter>
       </delimiters>
       
      Since the '@' delimiter is the same on both ends, we don't need to specify '@*@' (though we can).
      Since:
      1.1
    • useDefaultFilterDelimiters

      @Parameter(defaultValue="true") protected boolean useDefaultFilterDelimiters
      Since:
      1.1
    • runOnlyAtExecutionRoot

      @Parameter(defaultValue="false") protected boolean runOnlyAtExecutionRoot
      If true, only generate resources in the directory of the root project in a multimodule build. Dependencies from all modules will be aggregated before resource-generation takes place.
      Since:
      1.1
    • basedir

      @Parameter(defaultValue="${basedir}", readonly=true, required=true) protected File basedir
      Used for calculation of execution-root for runOnlyAtExecutionRoot.
    • encoding

      @Parameter(property="encoding", defaultValue="${project.build.sourceEncoding}") protected String encoding
      The character encoding scheme to be applied when filtering resources.
    • includeProjectProperties

      @Parameter(defaultValue="false") protected boolean includeProjectProperties
      Whether to include properties defined in the project when filtering resources.
      Since:
      1.2
    • velocityFilterInMemoryThreshold

      @Parameter(defaultValue="5242880") protected int velocityFilterInMemoryThreshold
      When the result of velocity transformation fits in memory, it is compared with the actual contents on disk to eliminate unnecessary destination file overwrite. This improves build times since further build steps typically rely on the modification date.
      Since:
      1.6
    • repositorySystem

      @Component protected org.apache.maven.repository.RepositorySystem repositorySystem
      Repository system, needed to create Artifact and Repository objects.
    • includeScope

      @Parameter(property="includeScope", defaultValue="runtime") protected String includeScope
      Scope to include. An Empty string indicates all scopes (default is "runtime").
      Since:
      1.0
    • excludeScope

      @Parameter(property="excludeScope", defaultValue="") protected String excludeScope
      Scope to exclude. An Empty string indicates no scopes (default).
      Since:
      1.0
    • excludeArtifactIds

      @Parameter(property="excludeArtifactIds", defaultValue="") protected String excludeArtifactIds
      Comma separated list of Artifact names too exclude.
      Since:
      1.0
    • includeArtifactIds

      @Parameter(property="includeArtifactIds", defaultValue="") protected String includeArtifactIds
      Comma separated list of Artifact names to include.
      Since:
      1.0
    • excludeGroupIds

      @Parameter(property="excludeGroupIds", defaultValue="") protected String excludeGroupIds
      Comma separated list of GroupId Names to exclude.
      Since:
      1.0
    • includeGroupIds

      @Parameter(property="includeGroupIds", defaultValue="") protected String includeGroupIds
      Comma separated list of GroupIds to include.
      Since:
      1.0
    • excludeTransitive

      @Parameter(property="excludeTransitive", defaultValue="false") protected boolean excludeTransitive
      If we should exclude transitive dependencies
      Since:
      1.0
    • dependencyResolver

      @Component(hint="default") protected org.apache.maven.ProjectDependenciesResolver dependencyResolver
  • Constructor Details

    • ProcessRemoteResourcesMojo

      public ProcessRemoteResourcesMojo()
  • Method Details

    • execute

      public void execute() throws org.apache.maven.plugin.MojoExecutionException
      Specified by:
      execute in interface org.apache.maven.plugin.Mojo
      Throws:
      org.apache.maven.plugin.MojoExecutionException
    • getProjects

      protected List<org.apache.maven.project.MavenProject> getProjects()
    • getProjectsSortedByOrganization

      protected Map<org.apache.maven.model.Organization,List<org.apache.maven.project.MavenProject>> getProjectsSortedByOrganization(List<org.apache.maven.project.MavenProject> projects)
    • copyResourceIfExists

      protected boolean copyResourceIfExists(File file, String relFileName, org.apache.velocity.VelocityContext context) throws IOException, org.apache.maven.plugin.MojoExecutionException
      Throws:
      IOException
      org.apache.maven.plugin.MojoExecutionException
    • validate

      protected void validate() throws org.apache.maven.plugin.MojoExecutionException
      Throws:
      org.apache.maven.plugin.MojoExecutionException
    • buildVelocityContext

      protected org.apache.velocity.VelocityContext buildVelocityContext(Map<String,Object> properties) throws org.apache.maven.plugin.MojoExecutionException
      Throws:
      org.apache.maven.plugin.MojoExecutionException
    • processResourceBundles

      protected void processResourceBundles(ClassLoader classLoader, org.apache.velocity.VelocityContext context) throws org.apache.maven.plugin.MojoExecutionException
      Throws:
      org.apache.maven.plugin.MojoExecutionException
    • getSupplement

      protected org.apache.maven.model.Model getSupplement(org.codehaus.plexus.util.xml.Xpp3Dom supplementModelXml) throws org.apache.maven.plugin.MojoExecutionException
      Throws:
      org.apache.maven.plugin.MojoExecutionException
    • mergeModels

      protected org.apache.maven.model.Model mergeModels(org.apache.maven.model.Model parent, org.apache.maven.model.Model child)
    • init

      public void init(org.apache.velocity.runtime.RuntimeServices rs) throws Exception
      Specified by:
      init in interface org.apache.velocity.runtime.log.LogChute
      Throws:
      Exception
    • log

      public void log(int level, String message)
      Specified by:
      log in interface org.apache.velocity.runtime.log.LogChute
    • log

      public void log(int level, String message, Throwable t)
      Specified by:
      log in interface org.apache.velocity.runtime.log.LogChute
    • isLevelEnabled

      public boolean isLevelEnabled(int level)
      Specified by:
      isLevelEnabled in interface org.apache.velocity.runtime.log.LogChute