mirror of
https://github.com/apache/maven.git
synced 2025-02-21 17:40:48 +00:00
o Changed maven-core's super-pom from pom.xml to pom-4.0.0.xml
o Added validation logic for non-heritable pom elements to the default project builder o Changed default builder to select the correct super-pom from the project pom's modelVersion. git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@163086 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
25ec60bbc6
commit
9e24a7b410
@ -101,9 +101,6 @@ public MavenProject build( File projectDescriptor, boolean resolveDependencies )
|
||||
|
||||
try
|
||||
{
|
||||
// TODO: rename to super-pom.xml so it is not used by the reactor
|
||||
superModel = modelReader.read( new InputStreamReader( DefaultMavenProjectBuilder.class.getResourceAsStream( "pom.xml" ) ) );
|
||||
|
||||
Model userModel = null;
|
||||
// TODO: use maven home local instead of user.home/.m2
|
||||
File userModelFile = new File( System.getProperty( "user.home" ) + "/.m2", "override.xml" );
|
||||
@ -119,6 +116,12 @@ public MavenProject build( File projectDescriptor, boolean resolveDependencies )
|
||||
{
|
||||
localRepositoryValue = userModel.getLocal().getRepository();
|
||||
}
|
||||
|
||||
validateLeafModel(userModel);
|
||||
|
||||
// TODO: rename to super-pom.xml so it is not used by the reactor
|
||||
superModel = modelReader.read( new InputStreamReader( DefaultMavenProjectBuilder.class.getResourceAsStream( "pom-" + userModel.getModelVersion() + ".xml" ) ) );
|
||||
|
||||
superModel.getRepositories().addAll( userModel.getRepositories() );
|
||||
}
|
||||
|
||||
@ -218,6 +221,34 @@ public MavenProject build( File projectDescriptor, boolean resolveDependencies )
|
||||
}
|
||||
}
|
||||
|
||||
private void validateLeafModel( Model userModel )
|
||||
{
|
||||
String modelVersion = userModel.getModelVersion();
|
||||
if ( modelVersion == null || modelVersion.length() < 1 )
|
||||
{
|
||||
throw new IllegalStateException( "POM element \'modelVersion\' must be specified; it may not be inherited" );
|
||||
}
|
||||
|
||||
String name = userModel.getName();
|
||||
if ( name == null || name.length() < 1 )
|
||||
{
|
||||
throw new IllegalStateException( "POM element \'name\' must be specified; it may not be inherited" );
|
||||
}
|
||||
|
||||
String artifactId = userModel.getArtifactId();
|
||||
if ( artifactId == null || artifactId.length() < 1 )
|
||||
{
|
||||
throw new IllegalStateException( "POM element \'artifactId\' must be specified; it may not be inherited" );
|
||||
}
|
||||
|
||||
String version = userModel.getVersion();
|
||||
if ( version == null || version.length() < 1 )
|
||||
{
|
||||
throw new IllegalStateException( "POM element \'version\' must be specified; it may not be inherited" );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private MavenProject assembleLineage( File projectDescriptor,
|
||||
ArtifactRepository localRepository,
|
||||
LinkedList lineage,
|
||||
|
@ -18,6 +18,7 @@
|
||||
|
||||
import org.apache.maven.plugin.PluginExecutionRequest;
|
||||
import org.apache.maven.plugin.PluginExecutionResponse;
|
||||
import org.apache.maven.project.MavenProject;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.LinkedHashMap;
|
||||
@ -52,6 +53,13 @@
|
||||
* validator=""
|
||||
* expression="#project.build.directory"
|
||||
* description=""
|
||||
* @parameter
|
||||
* name="project"
|
||||
* type="org.apache.maven.project.MavenProject"
|
||||
* required="true"
|
||||
* validator=""
|
||||
* expression="#project"
|
||||
* description="current MavenProject instance"
|
||||
*
|
||||
* @author <a href="michal@codehaus">Michal Maczka</a>
|
||||
* @version $Id$
|
||||
@ -83,6 +91,9 @@ public void execute( PluginExecutionRequest request, PluginExecutionResponse res
|
||||
|
||||
addDirectory(includes, "**/**", "**/package.html", "", new File( outputDirectory ) );
|
||||
|
||||
MavenProject project = (MavenProject)request.getParameter("project");
|
||||
includes.put("META-INF/maven/pom.xml", project.getFile());
|
||||
|
||||
createJar( jarFile, includes );
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user