List of usage examples for org.apache.maven.model.building ModelBuildingRequest getValidationLevel
int getValidationLevel();
From source file:com.doublefx.maven.utils.flexmojos.mavenValidator.FlexMojosCompatibleModelValidator.java
License:Apache License
@Override public void validateEffectiveModel(Model model, ModelBuildingRequest request, ModelProblemCollector problems) { validateStringNotEmpty("modelVersion", problems, Severity.ERROR, model.getModelVersion(), model); validateId("groupId", problems, model.getGroupId(), model); validateId("artifactId", problems, model.getArtifactId(), model); validateStringNotEmpty("packaging", problems, Severity.ERROR, model.getPackaging(), model); if (!model.getModules().isEmpty()) { if (!"pom".equals(model.getPackaging())) { addViolation(problems, Severity.ERROR, "packaging", null, "with value '" + model.getPackaging() + "' is invalid. Aggregator projects " + "require 'pom' as packaging.", model); }/*from w ww . j av a2 s. c om*/ for (int i = 0, n = model.getModules().size(); i < n; i++) { String module = model.getModules().get(i); if (StringUtils.isBlank(module)) { addViolation(problems, Severity.WARNING, "modules.module[" + i + "]", null, "has been specified without a path to the project directory.", model.getLocation("modules")); } } } validateStringNotEmpty("version", problems, Severity.ERROR, model.getVersion(), model); Severity errOn30 = getSeverity(request, ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_0); validateEffectiveDependencies(problems, model.getDependencies(), false, request); DependencyManagement mgmt = model.getDependencyManagement(); if (mgmt != null) { validateEffectiveDependencies(problems, mgmt.getDependencies(), true, request); } if (request.getValidationLevel() >= ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_2_0) { Set<String> modules = new HashSet<String>(); for (int i = 0, n = model.getModules().size(); i < n; i++) { String module = model.getModules().get(i); if (!modules.add(module)) { addViolation(problems, Severity.ERROR, "modules.module[" + i + "]", null, "specifies duplicate child module " + module, model.getLocation("modules")); } } Severity errOn31 = getSeverity(request, ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_1); validateBannedCharacters("version", problems, errOn31, model.getVersion(), null, model, ILLEGAL_VERSION_CHARS); Build build = model.getBuild(); if (build != null) { for (Plugin p : build.getPlugins()) { validateStringNotEmpty("build.plugins.plugin.artifactId", problems, Severity.ERROR, p.getArtifactId(), p); validateStringNotEmpty("build.plugins.plugin.groupId", problems, Severity.ERROR, p.getGroupId(), p); validatePluginVersion("build.plugins.plugin.version", problems, p.getVersion(), p.getKey(), p, request); validateBoolean("build.plugins.plugin.inherited", problems, errOn30, p.getInherited(), p.getKey(), p); validateBoolean("build.plugins.plugin.extensions", problems, errOn30, p.getExtensions(), p.getKey(), p); validateEffectivePluginDependencies(problems, p, request); } validateResources(problems, build.getResources(), "build.resources.resource", request); validateResources(problems, build.getTestResources(), "build.testResources.testResource", request); } Reporting reporting = model.getReporting(); if (reporting != null) { for (ReportPlugin p : reporting.getPlugins()) { validateStringNotEmpty("reporting.plugins.plugin.artifactId", problems, Severity.ERROR, p.getArtifactId(), p); validateStringNotEmpty("reporting.plugins.plugin.groupId", problems, Severity.ERROR, p.getGroupId(), p); validateStringNotEmpty("reporting.plugins.plugin.version", problems, errOn31, p.getVersion(), p.getKey(), p); } } for (Repository repository : model.getRepositories()) { validateRepository(problems, repository, "repositories.repository", request); } for (Repository repository : model.getPluginRepositories()) { validateRepository(problems, repository, "pluginRepositories.pluginRepository", request); } DistributionManagement distMgmt = model.getDistributionManagement(); if (distMgmt != null) { if (distMgmt.getStatus() != null) { addViolation(problems, Severity.ERROR, "distributionManagement.status", null, "must not be specified.", distMgmt); } validateRepository(problems, distMgmt.getRepository(), "distributionManagement.repository", request); validateRepository(problems, distMgmt.getSnapshotRepository(), "distributionManagement.snapshotRepository", request); } } }
From source file:com.doublefx.maven.utils.flexmojos.mavenValidator.FlexMojosCompatibleModelValidator.java
License:Apache License
private void validateEffectiveDependencies(ModelProblemCollector problems, List<Dependency> dependencies, boolean management, ModelBuildingRequest request) { Severity errOn30 = getSeverity(request, ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_0); String prefix = management ? "dependencyManagement.dependencies.dependency." : "dependencies.dependency."; for (Dependency d : dependencies) { this.validateEffectiveDependency(problems, d, management, prefix, request); if (request.getValidationLevel() >= ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_2_0) { this.validateBoolean(prefix + "optional", problems, errOn30, d.getOptional(), d.getManagementKey(), d);//from ww w .j a va 2s . co m if (!management) { this.validateVersion(prefix + "version", problems, errOn30, d.getVersion(), d.getManagementKey(), d); this.validateEnum(prefix + "scope", problems, Severity.WARNING, d.getScope(), d.getManagementKey(), d, "merged", "external", "internal", "caching", "rsl", "theme", "provided", "compile", "runtime", "test", "system"); } } } }
From source file:com.doublefx.maven.utils.flexmojos.mavenValidator.FlexMojosCompatibleModelValidator.java
License:Apache License
private void validateEffectiveDependency(ModelProblemCollector problems, Dependency d, boolean management, String prefix, ModelBuildingRequest request) { this.validateId(prefix + "artifactId", problems, Severity.ERROR, d.getArtifactId(), d.getManagementKey(), d);/*from ww w .ja va 2 s. c o m*/ this.validateId(prefix + "groupId", problems, Severity.ERROR, d.getGroupId(), d.getManagementKey(), d); if (!management) { this.validateStringNotEmpty(prefix + "type", problems, Severity.ERROR, d.getType(), d.getManagementKey(), d); this.validateStringNotEmpty(prefix + "version", problems, Severity.ERROR, d.getVersion(), d.getManagementKey(), d); } if ("system".equals(d.getScope())) { String systemPath = d.getSystemPath(); if (StringUtils.isEmpty(systemPath)) { addViolation(problems, Severity.ERROR, prefix + "systemPath", d.getManagementKey(), "is missing.", d); } else { File exclusion = new File(systemPath); if (!exclusion.isAbsolute()) { addViolation(problems, Severity.ERROR, prefix + "systemPath", d.getManagementKey(), "must specify an absolute path but is " + systemPath, d); } else if (!exclusion.isFile()) { String msg = "refers to a non-existing file " + exclusion.getAbsolutePath(); systemPath = systemPath.replace('/', File.separatorChar).replace('\\', File.separatorChar); String jdkHome = request.getSystemProperties().getProperty("java.home", "") + File.separator + ".."; if (systemPath.startsWith(jdkHome)) { msg = msg + ". Please verify that you run Maven using a JDK and not just a JRE."; } addViolation(problems, Severity.WARNING, prefix + "systemPath", d.getManagementKey(), msg, d); } } } else if (StringUtils.isNotEmpty(d.getSystemPath())) { addViolation(problems, Severity.ERROR, prefix + "systemPath", d.getManagementKey(), "must be omitted. This field may only be specified for a dependency with system scope.", d); } if (request.getValidationLevel() >= ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_2_0) { for (Exclusion exclusion1 : d.getExclusions()) { this.validateId(prefix + "exclusions.exclusion.groupId", problems, Severity.WARNING, exclusion1.getGroupId(), d.getManagementKey(), exclusion1); this.validateId(prefix + "exclusions.exclusion.artifactId", problems, Severity.WARNING, exclusion1.getArtifactId(), d.getManagementKey(), exclusion1); } } }
From source file:com.doublefx.maven.utils.flexmojos.mavenValidator.FlexMojosCompatibleModelValidator.java
License:Apache License
private static Severity getSeverity(ModelBuildingRequest request, int errorThreshold) { return getSeverity(request.getValidationLevel(), errorThreshold); }