Class ProcessRemoteResourcesMojo
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled,org.apache.maven.plugin.Mojo,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
FieldsModifier and TypeFieldDescriptionprotected FileUsed for calculation of execution-root forrunOnlyAtExecutionRoot.protected org.apache.maven.ProjectDependenciesResolverprotected StringThe character encoding scheme to be applied when filtering resources.protected StringComma separated list of Artifact names too exclude.protected StringComma separated list of GroupId Names to exclude.protected StringScope to exclude.protected booleanIf we should exclude transitive dependenciesIn cases where a local resource overrides one from a remote resource bundle, that resource should be filtered if the resource set specifies it.protected StringComma separated list of Artifact names to include.protected StringComma separated list of GroupIds to include.protected booleanWhether to include properties defined in the project when filtering resources.protected StringScope to include.protected org.apache.maven.repository.RepositorySystemRepository system, needed to create Artifact and Repository objects.protected booleanIf true, only generate resources in the directory of the root project in a multimodule build.protected booleanprotected intWhen the result of velocity transformation fits in memory, it is compared with the actual contents on disk to eliminate unnecessary destination file overwrite.Fields inherited from interface org.apache.velocity.runtime.log.LogChute
DEBUG_ID, DEBUG_PREFIX, ERROR_ID, ERROR_PREFIX, INFO_ID, INFO_PREFIX, TRACE_ID, TRACE_PREFIX, WARN_ID, WARN_PREFIXFields inherited from interface org.apache.maven.plugin.Mojo
ROLE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected org.apache.velocity.VelocityContextbuildVelocityContext(Map<String, Object> properties) protected booleancopyResourceIfExists(File file, String relFileName, org.apache.velocity.VelocityContext context) voidexecute()protected List<org.apache.maven.project.MavenProject>getProjectsSortedByOrganization(List<org.apache.maven.project.MavenProject> projects) protected org.apache.maven.model.ModelgetSupplement(org.codehaus.plexus.util.xml.Xpp3Dom supplementModelXml) voidinit(org.apache.velocity.runtime.RuntimeServices rs) booleanisLevelEnabled(int level) voidvoidprotected org.apache.maven.model.ModelmergeModels(org.apache.maven.model.Model parent, org.apache.maven.model.Model child) protected voidprocessResourceBundles(ClassLoader classLoader, org.apache.velocity.VelocityContext context) protected voidvalidate()Methods inherited from class org.apache.maven.plugin.AbstractMojo
getLog, getPluginContext, setLog, setPluginContext
-
Field Details
-
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 runOnlyAtExecutionRootIf 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
Used for calculation of execution-root forrunOnlyAtExecutionRoot. -
encoding
@Parameter(property="encoding", defaultValue="${project.build.sourceEncoding}") protected String encodingThe character encoding scheme to be applied when filtering resources. -
includeProjectProperties
@Parameter(defaultValue="false") protected boolean includeProjectPropertiesWhether to include properties defined in the project when filtering resources.- Since:
- 1.2
-
velocityFilterInMemoryThreshold
@Parameter(defaultValue="5242880") protected int velocityFilterInMemoryThresholdWhen 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 repositorySystemRepository system, needed to create Artifact and Repository objects. -
includeScope
Scope to include. An Empty string indicates all scopes (default is "runtime").- Since:
- 1.0
-
excludeScope
Scope to exclude. An Empty string indicates no scopes (default).- Since:
- 1.0
-
excludeArtifactIds
Comma separated list of Artifact names too exclude.- Since:
- 1.0
-
includeArtifactIds
Comma separated list of Artifact names to include.- Since:
- 1.0
-
excludeGroupIds
Comma separated list of GroupId Names to exclude.- Since:
- 1.0
-
includeGroupIds
Comma separated list of GroupIds to include.- Since:
- 1.0
-
excludeTransitive
@Parameter(property="excludeTransitive", defaultValue="false") protected boolean excludeTransitiveIf 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:
executein interfaceorg.apache.maven.plugin.Mojo- Throws:
org.apache.maven.plugin.MojoExecutionException
-
getProjects
-
getProjectsSortedByOrganization
-
copyResourceIfExists
protected boolean copyResourceIfExists(File file, String relFileName, org.apache.velocity.VelocityContext context) throws IOException, org.apache.maven.plugin.MojoExecutionException - Throws:
IOExceptionorg.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
- Specified by:
initin interfaceorg.apache.velocity.runtime.log.LogChute- Throws:
Exception
-
log
- Specified by:
login interfaceorg.apache.velocity.runtime.log.LogChute
-
log
- Specified by:
login interfaceorg.apache.velocity.runtime.log.LogChute
-
isLevelEnabled
public boolean isLevelEnabled(int level) - Specified by:
isLevelEnabledin interfaceorg.apache.velocity.runtime.log.LogChute
-