1 package org.apache.maven.ant.tasks;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.File;
23
24 import org.apache.maven.plugin.antrun.AntRunMojo;
25 import org.apache.maven.project.MavenProject;
26 import org.apache.maven.project.MavenProjectHelper;
27 import org.apache.tools.ant.BuildException;
28 import org.apache.tools.ant.Project;
29 import org.apache.tools.ant.Task;
30 import org.codehaus.plexus.util.FileUtils;
31
32 public class AttachArtifactTask
33 extends Task
34 {
35
36
37
38
39 private String mavenProjectRefId = AntRunMojo.DEFAULT_MAVEN_PROJECT_REFID;
40
41
42
43
44 private String mavenProjectHelperRefId = AntRunMojo.DEFAULT_MAVEN_PROJECT_HELPER_REFID;
45
46
47
48
49 private File file;
50
51
52
53
54 private String classifier;
55
56
57
58
59 private String type;
60
61 public void execute()
62 {
63 if ( file == null )
64 {
65 throw new BuildException( "File is a required parameter." );
66 }
67
68 if ( !file.exists() )
69 {
70 throw new BuildException( "File does not exist: " + file );
71 }
72
73 if ( this.getProject().getReference( mavenProjectRefId ) == null )
74 {
75 throw new BuildException( "Maven project reference not found: " + mavenProjectRefId );
76 }
77
78 if ( type == null )
79 {
80 type = FileUtils.getExtension( file.getName() );
81 }
82
83 MavenProject mavenProject = (MavenProject) this.getProject().getReference( mavenProjectRefId );
84
85 if ( this.getProject().getReference( mavenProjectHelperRefId ) == null )
86 {
87 throw new BuildException( "Maven project helper reference not found: " + mavenProjectHelperRefId );
88 }
89
90 log( "Attaching " + file + " as an attached artifact", Project.MSG_VERBOSE );
91 MavenProjectHelper projectHelper = (MavenProjectHelper) getProject().getReference( mavenProjectHelperRefId );
92 projectHelper.attachArtifact( mavenProject, type, classifier, file );
93 }
94
95 public File getFile()
96 {
97 return file;
98 }
99
100 public void setFile( File file )
101 {
102 this.file = file;
103 }
104
105 public String getMavenProjectRefId()
106 {
107 return mavenProjectRefId;
108 }
109
110 public void setMavenProjectRefId( String mavenProjectRefId )
111 {
112 this.mavenProjectRefId = mavenProjectRefId;
113 }
114
115 public String getClassifier()
116 {
117 return classifier;
118 }
119
120 public void setClassifier( String classifier )
121 {
122 this.classifier = classifier;
123 }
124
125 public String getType()
126 {
127 return type;
128 }
129
130 public void setType( String type )
131 {
132 this.type = type;
133 }
134 }