@@ -423,17 +423,33 @@ public void validateFileModel(
423423 validateModelVersion (problems , m .getModelVersion (), m , VALID_MODEL_VERSIONS );
424424 }
425425
426- validateStringNoExpression ("groupId" , problems , Severity .WARNING , Version .V20 , m .getGroupId (), m );
427- if (parent == null ) {
428- validateStringNotEmpty ("groupId" , problems , Severity .FATAL , Version .V20 , m .getGroupId (), m );
429- }
426+ boolean isModelVersion41OrMore = !Objects .equals (ModelBuilder .MODEL_VERSION_4_0_0 , m .getModelVersion ());
427+ if (isModelVersion41OrMore ) {
428+ validateStringNoExpression ("groupId" , problems , Severity .FATAL , Version .V41 , m .getGroupId (), m );
429+ validateStringNotEmpty ("artifactId" , problems , Severity .FATAL , Version .V20 , m .getArtifactId (), m );
430+ validateStringNoExpression ("artifactId" , problems , Severity .FATAL , Version .V20 , m .getArtifactId (), m );
431+ validateVersionNoExpression ("version" , problems , Severity .FATAL , Version .V41 , m .getVersion (), m );
432+ if (parent != null ) {
433+ validateStringNoExpression (
434+ "groupId" , problems , Severity .FATAL , Version .V41 , parent .getGroupId (), m );
435+ validateStringNoExpression (
436+ "artifactId" , problems , Severity .FATAL , Version .V41 , parent .getArtifactId (), m );
437+ validateVersionNoExpression (
438+ "version" , problems , Severity .FATAL , Version .V41 , parent .getVersion (), m );
439+ }
440+ } else {
441+ validateStringNoExpression ("groupId" , problems , Severity .WARNING , Version .V20 , m .getGroupId (), m );
442+ if (parent == null ) {
443+ validateStringNotEmpty ("groupId" , problems , Severity .FATAL , Version .V20 , m .getGroupId (), m );
444+ }
430445
431- validateStringNoExpression ("artifactId" , problems , Severity .WARNING , Version .V20 , m .getArtifactId (), m );
432- validateStringNotEmpty ("artifactId" , problems , Severity .FATAL , Version .V20 , m .getArtifactId (), m );
446+ validateStringNoExpression ("artifactId" , problems , Severity .WARNING , Version .V20 , m .getArtifactId (), m );
447+ validateStringNotEmpty ("artifactId" , problems , Severity .FATAL , Version .V20 , m .getArtifactId (), m );
433448
434- validateVersionNoExpression ("version" , problems , Severity .WARNING , Version .V20 , m .getVersion (), m );
435- if (parent == null ) {
436- validateStringNotEmpty ("version" , problems , Severity .FATAL , Version .V20 , m .getVersion (), m );
449+ validateVersionNoExpression ("version" , problems , Severity .WARNING , Version .V20 , m .getVersion (), m );
450+ if (parent == null ) {
451+ validateStringNotEmpty ("version" , problems , Severity .FATAL , Version .V20 , m .getVersion (), m );
452+ }
437453 }
438454
439455 validate20RawDependencies (
0 commit comments