in src/main/java/org/apache/maven/plugins/ear/AbstractEarMojo.java [163:278]
public void execute()
throws MojoExecutionException, MojoFailureException
{
if ( fileNameMapping != null )
{
getLog().error( "fileNameMapping has been removed with version 3.0.0. You are still using it." );
getLog().error( "Use outputFileNameMapping instead." );
throw new MojoExecutionException( "fileNameMapping has been removed with version 3.0.0 "
+ "but you are still using it." );
}
final JavaEEVersion javaEEVersion = JavaEEVersion.getJavaEEVersion( version );
getLog().debug( "Resolving artifact type mappings ..." );
ArtifactTypeMappingService typeMappingService;
try
{
typeMappingService = new ArtifactTypeMappingService();
typeMappingService.configure( artifactTypeMappings );
}
catch ( EarPluginException e )
{
throw new MojoExecutionException( "Failed to initialize artifact type mappings", e );
}
catch ( PlexusConfigurationException e )
{
throw new MojoExecutionException( "Invalid artifact type mappings configuration", e );
}
getLog().debug( "Initializing JBoss configuration if necessary ..." );
try
{
initializeJbossConfiguration();
}
catch ( EarPluginException e )
{
throw new MojoExecutionException( "Failed to initialize JBoss configuration", e );
}
getLog().debug( "Initializing ear execution context" );
EarExecutionContext earExecutionContext =
new EarExecutionContext( project, mainArtifactId, defaultLibBundleDir, jbossConfiguration,
outputFileNameMapping, typeMappingService );
getLog().debug( "Resolving ear modules ..." );
List<EarModule> allModules = new ArrayList<EarModule>();
try
{
if ( modules != null && modules.length > 0 )
{
// Let's validate user-defined modules
EarModule module;
for ( EarModule module1 : modules )
{
module = module1;
getLog().debug( "Resolving ear module[" + module + "]" );
module.setEarExecutionContext( earExecutionContext );
module.resolveArtifact( project.getArtifacts() );
allModules.add( module );
}
}
// Let's add other modules
Set<Artifact> artifacts = project.getArtifacts();
for ( Artifact artifact : artifacts )
{
// If the artifact's type is POM, ignore and continue
// since it's used for transitive deps only.
if ( "pom".equals( artifact.getType() ) )
{
continue;
}
// Artifact is not yet registered and it has not test scope, nor is it optional
ScopeArtifactFilter filter = new ScopeArtifactFilter( Artifact.SCOPE_COMPILE_PLUS_RUNTIME );
if ( !isArtifactRegistered( artifact, allModules ) && !artifact.isOptional()
&& filter.include( artifact ) )
{
EarModule module = EarModuleFactory.newEarModule( artifact, javaEEVersion, defaultLibBundleDir,
includeLibInApplicationXml, typeMappingService );
module.setEarExecutionContext( earExecutionContext );
allModules.add( module );
}
}
}
catch ( EarPluginException e )
{
throw new MojoExecutionException( "Failed to initialize ear modules", e );
}
// Now we have everything let's built modules which have not been excluded
ScopeArtifactFilter filter = new ScopeArtifactFilter( Artifact.SCOPE_RUNTIME );
allEarModules = new ArrayList<>();
providedEarModules = new ArrayList<>();
earModules = new ArrayList<>();
for ( EarModule earModule : allModules )
{
if ( earModule.isExcluded() )
{
getLog().debug( "Skipping ear module[" + earModule + "]" );
}
else
{
allEarModules.add( earModule );
if ( filter.include( earModule.getArtifact() ) )
{
earModules.add( earModule );
}
else
{
providedEarModules.add( earModule );
}
}
}
}