diff --git a/src/main/java/org/apache/maven/shared/archiver/MavenArchiver.java b/src/main/java/org/apache/maven/shared/archiver/MavenArchiver.java index fe7429a..a581d91 100644 --- a/src/main/java/org/apache/maven/shared/archiver/MavenArchiver.java +++ b/src/main/java/org/apache/maven/shared/archiver/MavenArchiver.java @@ -254,6 +254,10 @@ protected Manifest doGetManifest( DependencyResolverResult result; if (config.isAddClasspath()) { + if (session == null) { + throw new NullPointerException("Session is required when addClasspath is enabled. " + + "Use getManifest(Session, Project, ManifestConfiguration) instead."); + } result = session.getService(DependencyResolver.class).resolve(session, project, PathScope.MAIN_RUNTIME); } else { result = null; diff --git a/src/test/java/org/apache/maven/shared/archiver/MavenArchiverTest.java b/src/test/java/org/apache/maven/shared/archiver/MavenArchiverTest.java index 7264763..cd52013 100644 --- a/src/test/java/org/apache/maven/shared/archiver/MavenArchiverTest.java +++ b/src/test/java/org/apache/maven/shared/archiver/MavenArchiverTest.java @@ -98,6 +98,18 @@ void setup() { when(dependencyResolverResult.getDependencies()).thenReturn(dependencies); } + @Test + void getManifestWithoutSessionWhenAddClasspath() { + MavenArchiver archiver = new MavenArchiver(); + Project project = getDummyProject(); + ManifestConfiguration config = new ManifestConfiguration(); + config.setAddClasspath(true); + + assertThatExceptionOfType(NullPointerException.class) + .isThrownBy(() -> archiver.getManifest(project, config)) + .withMessageContaining("Session"); + } + @ParameterizedTest @EmptySource @ValueSource(