You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Karl Heinz Marbaise (JIRA)" <ji...@apache.org> on 2015/08/09 15:18:45 UTC
[jira] [Created] (MNG-5868) Adding serval times the same artifact
via MavenProjectHelper (attachArtifact) does not produce a failure
Karl Heinz Marbaise created MNG-5868:
----------------------------------------
Summary: Adding serval times the same artifact via MavenProjectHelper (attachArtifact) does not produce a failure
Key: MNG-5868
URL: https://issues.apache.org/jira/browse/MNG-5868
Project: Maven
Issue Type: Bug
Components: core
Affects Versions: 3.3.3, 3.2.5, 3.1.1, 3.0.5
Reporter: Karl Heinz Marbaise
During the check of an issue MSHADE-195 i stumbled over several things...
If you take a look here and the log output excerpt:
{noformat}
INFO] Minimized 2341 -> 1293
[INFO] Minimized 3282 -> 2234
[INFO] Replacing original artifact with shaded artifact.
[INFO] Replacing /Users/kama/ws-git/apache/mshade/mshade-195/target/MSHADE-195-example-1-SNAPSHOT.jar with /Users/kama/ws-git/apache/mshade/mshade-195/target/MSHADE-195-example-1-SNAPSHOT-shaded.jar
[INFO] Replacing original source artifact with shaded source artifact.
[INFO] Replacing /Users/kama/ws-git/apache/mshade/mshade-195/target/MSHADE-195-example-1-SNAPSHOT-sources.jar with /Users/kama/ws-git/apache/mshade/mshade-195/target/MSHADE-195-example-1-SNAPSHOT-shaded-sources.jar
[INFO] Dependency-reduced POM written at: /Users/kama/ws-git/apache/mshade/mshade-195/dependency-reduced-pom.xml
[INFO]
[INFO] --- maven-install-plugin:2.5.2:install (default-install) @ MSHADE-195-example ---
[INFO] Installing /Users/kama/ws-git/apache/mshade/mshade-195/target/MSHADE-195-example-1-SNAPSHOT.jar to /Users/kama/.m2/repository/com/example/MSHADE-195-example/1-SNAPSHOT/MSHADE-195-example-1-SNAPSHOT.jar
[INFO] Installing /Users/kama/ws-git/apache/mshade/mshade-195/dependency-reduced-pom.xml to /Users/kama/.m2/repository/com/example/MSHADE-195-example/1-SNAPSHOT/MSHADE-195-example-1-SNAPSHOT.pom
[INFO] Installing /Users/kama/ws-git/apache/mshade/mshade-195/target/MSHADE-195-example-1-SNAPSHOT-sources.jar to /Users/kama/.m2/repository/com/example/MSHADE-195-example/1-SNAPSHOT/MSHADE-195-example-1-SNAPSHOT-sources.jar
[INFO] Installing /Users/kama/ws-git/apache/mshade/mshade-195/target/MSHADE-195-example-1-SNAPSHOT-sources.jar to /Users/kama/.m2/repository/com/example/MSHADE-195-example/1-SNAPSHOT/MSHADE-195-example-1-SNAPSHOT-sources.jar
[INFO]
{noformat}
Install plugin tries to install two identical artifacts which will work for maven-install-plugin but would fail a deploy to repository manager (for releases) etc.
So after diving into the problem i found the following code in maven-core (MavenProject.java):
{code:java}
/**
* Add or replace an artifact. This method is now deprecated. Use the @{MavenProjectHelper} to attach artifacts to a
* project. In spite of the 'throws' declaration on this API, this method has never thrown an exception since Maven
* 3.0.x. Historically, it logged and ignored a second addition of the same g/a/v/c/t. Now it replaces the file for
* the artifact, so that plugins (e.g. shade) can change the pathname of the file for a particular set of
* coordinates.
*
* @param artifact the artifact to add or replace.
* @throws DuplicateArtifactAttachmentException
*/
public void addAttachedArtifact( Artifact artifact )
throws DuplicateArtifactAttachmentException
{
getAttachedArtifacts().add( artifact );
}
public List<Artifact> getAttachedArtifacts()
{
if ( attachedArtifacts == null )
{
attachedArtifacts = new ArrayList<>();
}
return attachedArtifacts;
}
{code}
So taking a look into MavenProjectHelper.java and the implementation (DefaultMavenProjectHelper.java).
{code:java}
/**
* Add an attached artifact or replace the file for an existing artifact.
*
* @see MavenProject#addAttachedArtifact(org.apache.maven.artifact.Artifact)
* @param project project reference.
* @param artifact artifact to add or replace.
*/
public void attachArtifact( MavenProject project, Artifact artifact )
{
project.addAttachedArtifact( artifact );
}
{code}
which means that there is not check if an artifacts is already attached.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)