[ 
https://issues.apache.org/jira/browse/MNG-8023?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17808746#comment-17808746
 ] 

ASF GitHub Bot commented on MNG-8023:
-------------------------------------

michael-o commented on code in PR #1387:
URL: https://github.com/apache/maven/pull/1387#discussion_r1459367029


##########
api/maven-api-core/src/main/java/org/apache/maven/api/Project.java:
##########
@@ -68,12 +68,31 @@ public interface Project {
     String getPackaging();
 
     /**
-     * Returns the project artifact, that is the artifact produced by this 
project build.
+     * Returns the project POM artifact, that is the artifact of the POM of 
this project. Every project have POM
+     * artifact, while the existence of backing POM file is NOT a requirement 
(i.e. for some transient projects).
      *
      * @see org.apache.maven.api.services.ArtifactManager#getPath(Artifact)
      */
     @Nonnull
-    Artifact getArtifact();
+    default Artifact getPomArtifact() {
+        return getArtifacts().get(0);
+    }
+
+    /**
+     * Returns the project artifact, that is the artifact produced by this 
project build. This artifact MAY be same
+     * as the one returned by {@link #getPomArtifact()}, if the project is 
actually not producing any main artifact.
+     * <p>
+     * If only non-POM artifacts are needed, better use {@link 
#getArtifacts()} method: if that method returns list
+     * having one element, the methods {@link #getPomArtifact()} and this one 
will return same artifact.
+     *
+     * @see #getArtifacts()
+     * @see org.apache.maven.api.services.ArtifactManager#getPath(Artifact)
+     */
+    @Nonnull
+    default Artifact getArtifact() {
+        List<Artifact> artifacts = getArtifacts();
+        return artifacts.get(artifacts.size() - 1);

Review Comment:
   Wait a second, if there are other attached artifacts this will not work, 
will it?





> New method for project artifacts
> --------------------------------
>
>                 Key: MNG-8023
>                 URL: https://issues.apache.org/jira/browse/MNG-8023
>             Project: Maven
>          Issue Type: Task
>          Components: API
>            Reporter: Tamas Cservenak
>            Priority: Major
>             Fix For: 4.0.0, 4.0.0-alpha-13
>
>
> Introduce a new method on API Project object that exposes "main artifacts" of 
> project. The method can return 1 or 2 artifacts (never less than 1 and never 
> more than 2). These are NOT the attached artifacts! (see ProjectManager for 
> that).
> In short: projects with packaging "pom", "bom" (that produce only one 
> artifact) will on this method return 1 artifact, while projects for example 
> with packaging "jar" will return 2 artifacts (as they produce, install, 
> deploy two artifacts, the POM and the JAR/WAR/etc).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to