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