[ https://issues.apache.org/jira/browse/MNG-8023?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17808754#comment-17808754 ]
ASF GitHub Bot commented on MNG-8023: ------------------------------------- michael-o commented on code in PR #1387: URL: https://github.com/apache/maven/pull/1387#discussion_r1459428581 ########## 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: Right, my bad! > 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)