public Model getSuperModel( String version )
{
if ( superModel == null )
{
String resource = "/org/apache/maven/model/pom-" + version + ".xml";
InputStream is = getClass().getResourceAsStream( resource );
if ( is == null )
{
throw new IllegalStateException( "The super POM " + resource + " was not found"
+ ", please verify the integrity of your Maven installation" );
}
try
{
Map<String, String> options = new HashMap<String, String>();
options.put( "xml:4.0.0", "xml:4.0.0" );
superModel = modelProcessor.read( is, options );
}
catch ( IOException e )
{
throw new IllegalStateException( "The super POM " + resource + " is damaged"
+ ", please verify the integrity of your Maven installation", e );
}
}
return superModel;
}
加载supermodle的目录是:/org/apache/maven/model/pom-*.xml
maven解析pom文件的代码
:
for ( ModelData currentData = resultData; currentData != null; )
{
lineage.add( currentData );
Model tmpModel = currentData.getModel();
Model rawModel = tmpModel.clone();
currentData.setRawModel( rawModel );
problems.setSource( tmpModel );
modelNormalizer.mergeDuplicates( tmpModel, request, problems );
profileActivationContext.setProjectProperties( tmpModel.getProperties() );
List<Profile> activePomProfiles =
profileSelector.getActiveProfiles( rawModel.getProfiles(), profileActivationContext, problems );
currentData.setActiveProfiles( activePomProfiles );
for ( Profile activeProfile : activePomProfiles )
{
profileInjector.injectProfile( tmpModel, activeProfile, request, problems );
}
if ( currentData == resultData )
{
for ( Profile activeProfile : activeExternalProfiles )
{
profileInjector.injectProfile( tmpModel, activeProfile, request, problems );
}
}
if ( currentData == superData )
{
break;
}
configureResolver( request.getModelResolver(), tmpModel, problems );
currentData = readParent( tmpModel, currentData.getSource(), request, problems );
if ( currentData == null )
{
currentData = superData;
}
else if ( !parentIds.add( currentData.getId() ) )
{
String message = "The parents form a cycle: ";
for ( String modelId : parentIds )
{
message += modelId + " -> ";
}
message += currentData.getId();
problems.add( new ModelProblemCollectorRequest( ModelProblem.Severity.FATAL, ModelProblem.Version.BASE ).setMessage( message ) );
throw problems.newModelBuildingException();
}
}
从这里可以说明,pom的文件内容是先整合当前pom内容,然后整合parent最后整合superpom文件内容
相关推荐
这样,您可以确保您不会浪费时间在Apache Maven范围之外的东西上。 假设您的问题不存在,请提交该问题的票证。 清楚地描述问题,包括在出现错误时重现的步骤。 确保填写您知道存在问题的最早版本。 在GitHub上分叉...
第14章:灵活的构建/14.2 Maven属性的使用/14.2.3 属性解析/14.2.3.3 实例完整源代码 第14章:灵活的构建/14.3 激活属性文件的方法/14.3.1 属性文件概念 第14章:灵活的构建/14.3 激活属性文件的方法/14.3.2 命令行...
这样,您可以确保您不会浪费时间在Apache Maven范围之外的东西上。 假设您的问题不存在,请提交该问题的票证。 清楚地描述问题,包括在出现错误时重现的步骤。 确保填写您知道存在问题的最早版本。 在GitHub上分叉...
其他功能:试题收藏、试题评论、试题解析、试题点赞、错题重做。 权限控制:题库权限、考场权限 项目亮点:支持视频题目、支持视频解析 本系统由9个maven模块构成,他们分别编译的顺序是: wts-core > wts-parameter ...
zxing.java源码解析 <<<<<<< HEAD mytools 常用工具类 技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 infoq...
解析1078部标终端推流,并转发至rtmp流服务器.代码有点乱但是本人保证可用. 1078分了2014和2016.该版本是否都支持我已近刚忘记了.但是大同小异对不对~~就是解析的时候注意下就行了
主要介绍了Java程序测试上传Maven工程代码示例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要介绍了Maven访问仓库顺序实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
解析二维码、生成二维码图片代码,以及jar包都已经上传。qrcode.jar Qrcode_swetake.jar,直接下载使用,让你轻松解决解析二维码、生成二维码问题。
这样,您可以确保您不会浪费时间在Apache Maven范围之外的东西上。 假设您的问题不存在,请提交该问题的票证。 清楚地描述问题,包括在出现错误时重现的步骤。 确保填写您知道存在问题的最早版本。 在GitHub上...
赠送源代码:log4j-core-2.17.1-sources.jar; 赠送Maven依赖信息文件:log4j-core-2.17.1.pom; 包含翻译后的API文档:log4j-core-2.17.1-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.apache.logging.log4j...
这是持续集成服务器的Maven存储库软件包插件,是代码库的重新混合。 主要区别在于: 用Maven代替Ant构建 在存储库配置中添加了代理选项 该插件解析Maven存储库的maven-metadata.xml而不是使用Nexus API,因此可以...
JavaParser和Maven示例一个可以正常工作的示例Maven项目,该项目使用解析并生成代码这是针对没有经验的人员的。 要构建它,您将需要下载并解压缩Maven的最新(或最新)版本( ),然后将mvn命令放在您的路径上。 ...
zxing.java源码解析 这是自己项目远程代码仓库 自己maven ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////...
主要介绍了Maven多个项目实现聚合过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
JavaParser和Maven示例一个可以正常工作的示例Maven项目,该项目使用解析并生成代码这是针对没有经验的人员的。 要构建它,您需要下载并解压缩Maven的最新(或最新)版本( ),然后将mvn命令放在您的路径上。 然后...
Java的源代码生成(Maven插件) 这是什么? 该项目提供了一个Maven插件,该插件基于/项目执行解析/生成工作流。 用法 只需将插件添加到项目的Maven POM并添加配置依赖项即可。 < plugin > < groupId >org.fuin...
主要介绍了Maven远程仓库地址修改实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
ph-javacc-maven-plugin 的更新版本。 最初是JavaCC 6.1.3,后来更新到JavaCC 7.0,但与此同时,底层代码是项目,它是JavaCC 7.0.3的... 我在使用它进行CSS解析。 从原始插件升级 当他们更新到此插件时,以下列表是
java项目源码