5151import org .apache .maven .project .ProjectBuildingException ;
5252import org .apache .maven .project .ProjectBuildingRequest ;
5353import org .apache .maven .report .projectinfo .AbstractProjectInfoRenderer ;
54+ import org .apache .maven .report .projectinfo .LicenseMapping ;
5455import org .apache .maven .report .projectinfo .ProjectInfoReportUtils ;
5556import org .apache .maven .report .projectinfo .dependencies .Dependencies ;
5657import org .apache .maven .report .projectinfo .dependencies .DependenciesReportConfiguration ;
@@ -132,6 +133,8 @@ public Object put( String key, Object value )
132133
133134 private final ProjectBuildingRequest buildingRequest ;
134135
136+ private final Map <String , String > licenseMappings ;
137+
135138 static
136139 {
137140 Set <String > jarSubtype = new HashSet <>();
@@ -161,12 +164,13 @@ public Object put( String key, Object value )
161164 * @param repositorySystem {@link RepositorySystem}
162165 * @param projectBuilder {@link ProjectBuilder}
163166 * @param buildingRequest {@link ProjectBuildingRequest}
167+ * @param licenseMappings {@link LicenseMapping}
164168 */
165169 public DependenciesRenderer ( Sink sink , Locale locale , I18N i18n , Log log ,
166170 Dependencies dependencies , DependencyNode dependencyTreeNode ,
167171 DependenciesReportConfiguration config , RepositoryUtils repoUtils ,
168172 RepositorySystem repositorySystem , ProjectBuilder projectBuilder ,
169- ProjectBuildingRequest buildingRequest )
173+ ProjectBuildingRequest buildingRequest , Map < String , String > licenseMappings )
170174 {
171175 super ( sink , i18n , locale );
172176
@@ -178,6 +182,7 @@ public DependenciesRenderer( Sink sink, Locale locale, I18N i18n, Log log,
178182 this .repositorySystem = repositorySystem ;
179183 this .projectBuilder = projectBuilder ;
180184 this .buildingRequest = buildingRequest ;
185+ this .licenseMappings = licenseMappings ;
181186
182187 // Using the right set of symbols depending of the locale
183188 DEFAULT_DECIMAL_FORMAT .setDecimalFormatSymbols ( new DecimalFormatSymbols ( locale ) );
@@ -800,7 +805,12 @@ private void renderArtifactRow( Artifact artifact, boolean withClassifier, boole
800805 List <License > licenses = artifactProject .getLicenses ();
801806 for ( License license : licenses )
802807 {
803- sb .append ( ProjectInfoReportUtils .getArtifactIdCell ( license .getName (), license .getUrl () ) );
808+ String name = license .getName ();
809+ if ( licenseMappings != null && licenseMappings .containsKey ( name ) )
810+ {
811+ name = licenseMappings .get ( name );
812+ }
813+ sb .append ( ProjectInfoReportUtils .getArtifactIdCell ( name , license .getUrl () ) );
804814 }
805815 }
806816 catch ( ProjectBuildingException e )
@@ -956,6 +966,10 @@ private void printDescriptionsAndURLs( DependencyNode node, String uid )
956966 License license = it .next ();
957967
958968 String licenseName = license .getName ();
969+ if ( licenseMappings != null && licenseMappings .containsKey ( licenseName ) )
970+ {
971+ licenseName = licenseMappings .get ( licenseName );
972+ }
959973 if ( StringUtils .isEmpty ( licenseName ) )
960974 {
961975 licenseName = getI18nString ( "unnamed" );
0 commit comments