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 Summary
Fields Modifier and Type Field Description protected File
basedir
Used for calculation of execution-root forrunOnlyAtExecutionRoot
.protected org.apache.maven.ProjectDependenciesResolver
dependencyResolver
protected String
encoding
The character encoding scheme to be applied when filtering resources.protected String
excludeArtifactIds
Comma separated list of Artifact names too exclude.protected String
excludeGroupIds
Comma separated list of GroupId Names to exclude.protected String
excludeScope
Scope to exclude.protected boolean
excludeTransitive
If we should exclude transitive dependenciesprotected 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.protected String
includeArtifactIds
Comma separated list of Artifact names to include.protected String
includeGroupIds
Comma separated list of GroupIds to include.protected boolean
includeProjectProperties
Whether to include properties defined in the project when filtering resources.protected String
includeScope
Scope to include.protected boolean
runOnlyAtExecutionRoot
If true, only generate resources in the directory of the root project in a multimodule build.protected boolean
useDefaultFilterDelimiters
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.
-
Constructor Summary
Constructors Constructor Description ProcessRemoteResourcesMojo()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected org.apache.velocity.VelocityContext
buildVelocityContext(Map<String,Object> properties)
protected boolean
copyResourceIfExists(File file, String relFileName, org.apache.velocity.VelocityContext context)
void
execute()
protected List<org.apache.maven.project.MavenProject>
getProjects()
protected Map<org.apache.maven.model.Organization,List<org.apache.maven.project.MavenProject>>
getProjectsSortedByOrganization(List<org.apache.maven.project.MavenProject> projects)
protected org.apache.maven.model.Model
getSupplement(org.codehaus.plexus.util.xml.Xpp3Dom supplementModelXml)
void
init(org.apache.velocity.runtime.RuntimeServices rs)
boolean
isLevelEnabled(int level)
void
log(int level, String message)
void
log(int level, String message, Throwable t)
protected org.apache.maven.model.Model
mergeModels(org.apache.maven.model.Model parent, org.apache.maven.model.Model child)
protected void
processResourceBundles(ClassLoader classLoader, org.apache.velocity.VelocityContext context)
protected void
validate()
-
-
-
Field Detail
-
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 forrunOnlyAtExecutionRoot
.
-
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
-
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
-
-
Method Detail
-
execute
public void execute() throws org.apache.maven.plugin.MojoExecutionException
- Specified by:
execute
in interfaceorg.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 interfaceorg.apache.velocity.runtime.log.LogChute
- Throws:
Exception
-
log
public void log(int level, String message)
- Specified by:
log
in interfaceorg.apache.velocity.runtime.log.LogChute
-
log
public void log(int level, String message, Throwable t)
- Specified by:
log
in interfaceorg.apache.velocity.runtime.log.LogChute
-
isLevelEnabled
public boolean isLevelEnabled(int level)
- Specified by:
isLevelEnabled
in interfaceorg.apache.velocity.runtime.log.LogChute
-
-