pomchecker icon indicating copy to clipboard operation
pomchecker copied to clipboard

Cannot handle aar as packaging

Open aalmiray opened this issue 1 year ago • 1 comments

Android libraries use <packaging>aar</packaging> which causes an exception when parsing with v1.11.0

org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs:
[ERROR] Unknown packaging: aar @ line 27, column 14

java.lang.IllegalStateException: org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs:
[ERROR] Unknown packaging: aar @ line 27, column 14

	at org.kordamp.maven.checker.cli.internal.PomParser.createMavenProject(PomParser.java:102)
	at org.kordamp.maven.checker.cli.internal.PomParser.createMavenProject(PomParser.java:66)
	at org.kordamp.maven.checker.cli.CheckMavenCentral.execute(CheckMavenCentral.java:61)
	at org.kordamp.maven.checker.cli.AbstractCommand.call(AbstractCommand.java:102)
	at org.kordamp.maven.checker.cli.CheckMavenCentral.call(CheckMavenCentral.java:30)
	at org.kordamp.maven.checker.cli.AbstractCommand.call(AbstractCommand.java:34)
	at picocli.CommandLine.executeUserObject(CommandLine.java:2041)
	at picocli.CommandLine.access$1500(CommandLine.java:148)
	at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2453)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2415)
	at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273)
	at picocli.CommandLine$RunLast.execute(CommandLine.java:2417)
	at picocli.CommandLine.execute(CommandLine.java:2170)
	at org.kordamp.maven.checker.cli.Main.execute(Main.java:86)
	at org.kordamp.maven.checker.cli.Main.run(Main.java:72)
	at org.kordamp.maven.checker.cli.Main.main(Main.java:64)
Caused by: org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs:
[ERROR] Unknown packaging: aar @ line 27, column 14

	at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:208)
	at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:123)
	at org.kordamp.maven.checker.cli.internal.PomParser.createMavenProject(PomParser.java:99)
	... 16 more
Caused by: org.apache.maven.model.building.ModelBuildingException: 1 problem was encountered while building the effective model for org.jreleaser.examples:helloworld:1.0.0
[ERROR] Unknown packaging: aar @ line 27, column 14

	at org.apache.maven.model.building.DefaultModelProblemCollector.newModelBuildingException(DefaultModelProblemCollector.java:176)
	at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:508)
	at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:410)
	at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:243)
	at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:176)
	... 18 more

aalmiray avatar Jun 27 '24 09:06 aalmiray

Well, the exception occurs as long as there's no plugin that can provide aar packaging. Adding the following to the pom should be enough to make pomchecker work

<plugin>
    <groupId>com.simpligility.maven.plugins</groupId>
    <artifactId>android-maven-plugin</artifactId>
    <version>4.6.0</version>
    <extensions>true</extensions>
</plugin>

aalmiray avatar Jun 27 '24 09:06 aalmiray

Pomchecker requires building a fully resolved model from the input pom file. This means a component must be able to resolve <packaging>aar</packaging>. Gradle does not generate pom files with such configuration, thus the extra bit of XML configuration must be added explicitly to generated poms when using Gradle as build tool.

This is not a bug in Pomchecker, but rather part of its core behavior to resolve a full model.

aalmiray avatar Feb 11 '25 16:02 aalmiray