You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by cs...@apache.org on 2023/03/21 13:10:06 UTC
[maven-install-plugin] 01/01: [MINSTALL-189] Add parameter to lax project validation
This is an automated email from the ASF dual-hosted git repository.
cstamas pushed a commit to branch MINSTALL-189
in repository https://gitbox.apache.org/repos/asf/maven-install-plugin.git
commit cfe67ae7fd16062eafdf88f432717ae5761e4d6e
Author: Tamas Cservenak <ta...@cservenak.net>
AuthorDate: Tue Mar 21 14:09:31 2023 +0100
[MINSTALL-189] Add parameter to lax project validation
---
https://issues.apache.org/jira/browse/MINSTALL-189
---
.../apache/maven/plugins/install/InstallMojo.java | 28 +++++++++++++++++++---
1 file changed, 25 insertions(+), 3 deletions(-)
diff --git a/src/main/java/org/apache/maven/plugins/install/InstallMojo.java b/src/main/java/org/apache/maven/plugins/install/InstallMojo.java
index 3646de8..9c3a3be 100644
--- a/src/main/java/org/apache/maven/plugins/install/InstallMojo.java
+++ b/src/main/java/org/apache/maven/plugins/install/InstallMojo.java
@@ -82,6 +82,18 @@ public class InstallMojo extends AbstractMojo {
@Parameter(property = "maven.install.skip", defaultValue = "false")
private boolean skip;
+ /**
+ * Set this to <code>true</code> to allow incomplete project processing. By default, such projects are forbidden
+ * and Mojo will fail to process them. Incomplete project is a Maven Project that has any other packaging than
+ * "pom" and has no main artifact packaged. In the majority of cases, what user really wants here is a project
+ * with "pom" packaging and some classified artifact attached (typical example is some assembly being packaged
+ * and attached with classifier).
+ *
+ * @since 3.1.1
+ */
+ @Parameter(defaultValue = "false", property = "allowIncompleteProjects")
+ private boolean allowIncompleteProjects;
+
private enum State {
SKIPPED,
INSTALLED,
@@ -193,11 +205,21 @@ public class InstallMojo extends AbstractMojo {
if (isFile(mavenMainArtifact.getFile())) {
request.addArtifact(RepositoryUtils.toArtifact(mavenMainArtifact));
} else if (!project.getAttachedArtifacts().isEmpty()) {
- throw new MojoExecutionException("The packaging plugin for this project did not assign "
- + "a main file to the project but it has attachments. Change packaging to 'pom'.");
+ if (allowIncompleteProjects) {
+ getLog().warn( "" );
+ getLog().warn( "The packaging plugin for this project did not assign" );
+ getLog().warn( "a main file to the project but it has attachments. Change packaging to 'pom'." );
+ getLog().warn( "" );
+ getLog().warn( "Incomplete projects like this will fail in future Maven versions!" );
+ getLog().warn( "" );
+ } else
+ {
+ throw new MojoExecutionException( "The packaging plugin for this project did not assign "
+ + "a main file to the project but it has attachments. Change packaging to 'pom'." );
+ }
} else {
throw new MojoExecutionException(
- "The packaging for this project did not assign " + "a file to the build artifact");
+ "The packaging for this project did not assign a file to the build artifact");
}
}