This is an automated email from the ASF dual-hosted git repository.
cstamas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-deploy-plugin.git
The following commit(s) were added to refs/heads/master by this push:
new 04f5e88 [MDEPLOY-308] Add parameter to lax project validation (#39)
04f5e88 is described below
commit 04f5e8856adbe9019476d9a0aba6c8de95bdf107
Author: Tamas Cservenak <[email protected]>
AuthorDate: Tue Mar 21 15:24:08 2023 +0100
[MDEPLOY-308] Add parameter to lax project validation (#39)
* [MDEPLOY-308] Add parameter to lax project validation
---
https://issues.apache.org/jira/browse/MDEPLOY-308
* Reformat
---
.../apache/maven/plugins/deploy/DeployMojo.java | 25 ++++++++++++++++++++--
1 file changed, 23 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/apache/maven/plugins/deploy/DeployMojo.java
b/src/main/java/org/apache/maven/plugins/deploy/DeployMojo.java
index 4e317ac..c9b0d4a 100644
--- a/src/main/java/org/apache/maven/plugins/deploy/DeployMojo.java
+++ b/src/main/java/org/apache/maven/plugins/deploy/DeployMojo.java
@@ -126,6 +126,18 @@ public class DeployMojo extends AbstractDeployMojo {
@Parameter(property = "maven.deploy.skip", defaultValue = "false")
private String skip = Boolean.FALSE.toString();
+ /**
+ * 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,
DEPLOYED,
@@ -285,8 +297,17 @@ public class DeployMojo extends AbstractDeployMojo {
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");