1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugin.eclipse;
20
21 import java.io.File;
22
23 import org.apache.maven.plugin.MojoExecutionException;
24 import org.apache.maven.plugin.ide.IdeUtils;
25 import org.apache.maven.plugin.ide.JeeUtils;
26 import org.apache.maven.plugins.annotations.Mojo;
27 import org.apache.maven.plugins.annotations.Parameter;
28 import org.apache.maven.project.MavenProject;
29 import org.codehaus.plexus.util.FileUtils;
30
31
32
33
34
35
36 @Mojo( name = "rad-clean" )
37 public class RadCleanMojo
38 extends EclipseCleanMojo
39 {
40
41
42
43 @Parameter( property = "project", required = true, readonly = true )
44 private MavenProject project;
45
46 protected void cleanExtras()
47 throws MojoExecutionException
48 {
49 delete( new File( getBasedir(), ".j2ee" ) );
50 delete( new File( getBasedir(), ".websettings" ) );
51 delete( new File( getBasedir(), ".website-config" ) );
52
53 handleLibs();
54 }
55
56
57
58
59
60
61 public MavenProject getProject()
62 {
63 return this.project;
64 }
65
66
67
68
69
70
71 public void setProject( MavenProject project )
72 {
73 this.project = project;
74 }
75
76
77
78
79
80
81 private void handleEarLibs()
82 throws MojoExecutionException
83 {
84 File targetDir = this.project.getBasedir();
85 deleteJarArtifactsInDirectory( targetDir );
86 deleteWarArtifactsInDirectory( targetDir );
87 }
88
89
90
91
92
93
94 private void handleLibs()
95 throws MojoExecutionException
96 {
97
98 if ( Constants.PROJECT_PACKAGING_EAR.equals( getPackaging() ) )
99 {
100 handleEarLibs();
101 }
102 else if ( Constants.PROJECT_PACKAGING_WAR.equals( getPackaging() ) )
103 {
104 handleWarLibs();
105 }
106 }
107
108
109
110
111
112
113 private void handleWarLibs()
114 throws MojoExecutionException
115 {
116 File basedir = this.project.getBasedir();
117
118 File warSourceDirectory =
119 new File( IdeUtils.getPluginSetting( this.project, JeeUtils.ARTIFACT_MAVEN_WAR_PLUGIN,
120 "warSourceDirectory",
121 "src/main/webapp" ) );
122
123 String webContentDir = IdeUtils.toRelativeAndFixSeparator( basedir, warSourceDirectory, false );
124
125 String srcMainWebappWebInfLibDirname =
126 basedir.getAbsolutePath() + File.separatorChar + webContentDir + File.separatorChar + "WEB-INF"
127 + File.separatorChar + "lib";
128
129 File srcMainWebappWebInfLibDir = new File( srcMainWebappWebInfLibDirname );
130 srcMainWebappWebInfLibDir.mkdirs();
131
132 deleteJarArtifactsInDirectory( srcMainWebappWebInfLibDir );
133 }
134
135
136
137
138
139
140
141 protected void deleteJarArtifactsInDirectory( File directory )
142 throws MojoExecutionException
143 {
144 deleteArtifactsInDirectory( directory, Constants.PROJECT_PACKAGING_JAR );
145 }
146
147
148
149
150
151
152
153 protected void deleteWarArtifactsInDirectory( File directory )
154 throws MojoExecutionException
155 {
156 deleteArtifactsInDirectory( directory, Constants.PROJECT_PACKAGING_WAR );
157 }
158
159
160
161
162
163
164
165
166
167
168 private void deleteArtifactsInDirectory( File directory, String packagingType )
169 throws MojoExecutionException
170 {
171
172
173 if ( Constants.PROJECT_PACKAGING_JAR.equalsIgnoreCase( packagingType )
174 || Constants.PROJECT_PACKAGING_WAR.equalsIgnoreCase( packagingType ) )
175 {
176 String[] oldFiles =
177 FileUtils.getFilesFromExtension( directory.getAbsolutePath(), new String[] { packagingType } );
178 for (String oldFile : oldFiles) {
179 File f = new File(oldFile);
180
181 delete(f);
182 }
183 }
184 }
185 }