1 package org.codehaus.mojo.appassembler.util;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 import org.apache.maven.artifact.Artifact;
28 import org.apache.maven.artifact.handler.ArtifactHandler;
29 import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
30 import org.codehaus.plexus.util.StringUtils;
31
32 public final class ArtifactUtils
33 {
34
35 private ArtifactUtils()
36 {
37 }
38
39
40
41
42
43
44
45
46
47 public static String pathBaseVersionOf( ArtifactRepositoryLayout artifactRepositoryLayout, Artifact artifact )
48 {
49 ArtifactHandler artifactHandler = artifact.getArtifactHandler();
50
51 StringBuffer fileName = new StringBuffer();
52
53 fileName.append( artifact.getArtifactId() ).append( "-" ).append( artifact.getBaseVersion() );
54
55 if ( artifact.hasClassifier() )
56 {
57 fileName.append( "-" ).append( artifact.getClassifier() );
58 }
59
60 if ( artifactHandler.getExtension() != null && artifactHandler.getExtension().length() > 0 )
61 {
62 fileName.append( "." ).append( artifactHandler.getExtension() );
63 }
64
65 String relativePath = artifactRepositoryLayout.pathOf( artifact );
66 String[] tokens = StringUtils.split( relativePath, "/" );
67 tokens[tokens.length - 1] = fileName.toString();
68
69 StringBuffer path = new StringBuffer();
70
71 for ( int i = 0; i < tokens.length; ++i )
72 {
73
74 path.append( tokens[i] );
75 if ( i != tokens.length - 1 )
76 {
77 path.append( "/" );
78 }
79 }
80
81 return path.toString();
82
83 }
84
85 }