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.AbstractMojo;
24 import org.apache.maven.plugin.MojoExecutionException;
25 import org.apache.maven.plugin.ide.IdeUtils;
26
27
28
29
30
31
32 public class EclipseCleanMojo
33 extends AbstractMojo
34 {
35
36
37
38
39 private static final String FILE_DOT_WTPMODULES = ".wtpmodules";
40
41
42
43
44 private static final String FILE_DOT_CLASSPATH = ".classpath";
45
46
47
48
49 private static final String FILE_DOT_PROJECT = ".project";
50
51
52
53
54 private static final String DIR_DOT_SETTINGS = ".settings";
55
56
57
58
59 private static final String FILE_DOT_COMPONENT = ".settings/.component";
60
61
62
63
64 private static final String FILE_DOT_COMPONENT_15 = ".settings/org.eclipse.wst.common.component";
65
66
67
68
69 private static final String FILE_FACET_CORE_XML = ".settings/org.eclipse.wst.common.project.facet.core.xml";
70
71
72
73
74 private static final String FILE_ECLIPSE_JDT_CORE_PREFS = ".settings/org.eclipse.jdt.core.prefs";
75
76
77
78
79 private static final String FILE_AJDT_PREFS = ".settings/org.eclipse.ajdt.ui.prefs";
80
81
82
83
84
85
86 private String packaging;
87
88
89
90
91
92
93 private File basedir;
94
95
96
97
98
99
100 private boolean skip;
101
102
103
104
105
106
107 private EclipseConfigFile[] additionalConfig;
108
109
110
111
112 public void execute()
113 throws MojoExecutionException
114 {
115 if ( skip )
116 {
117 return;
118 }
119
120 if ( Constants.PROJECT_PACKAGING_POM.equals( this.packaging ) )
121 {
122 return;
123 }
124
125 delete( new File( basedir, FILE_DOT_PROJECT ) );
126 delete( new File( basedir, FILE_DOT_CLASSPATH ) );
127 delete( new File( basedir, FILE_DOT_WTPMODULES ) );
128
129 delete( new File( basedir, FILE_DOT_COMPONENT ) );
130 delete( new File( basedir, FILE_DOT_COMPONENT_15 ) );
131 delete( new File( basedir, FILE_FACET_CORE_XML ) );
132 delete( new File( basedir, FILE_ECLIPSE_JDT_CORE_PREFS ) );
133 delete( new File( basedir, FILE_AJDT_PREFS ) );
134
135 File settingsDir = new File( basedir, DIR_DOT_SETTINGS );
136 if ( settingsDir.exists() && settingsDir.isDirectory() && settingsDir.list().length == 0 )
137 {
138 delete( settingsDir );
139 }
140
141 if ( additionalConfig != null )
142 {
143 for ( int i = 0; i < additionalConfig.length; i++ )
144 {
145 delete( new File( basedir, additionalConfig[i].getName() ) );
146 }
147 }
148
149 cleanExtras();
150 }
151
152 protected void cleanExtras()
153 throws MojoExecutionException
154 {
155
156 }
157
158
159
160
161
162
163
164 protected void delete( File f )
165 throws MojoExecutionException
166 {
167 IdeUtils.delete( f, getLog() );
168 }
169
170
171
172
173
174
175 public File getBasedir()
176 {
177 return this.basedir;
178 }
179
180
181
182
183
184
185 public void setBasedir( File basedir )
186 {
187 this.basedir = basedir;
188 }
189
190
191
192
193 public String getPackaging()
194 {
195 return this.packaging;
196 }
197
198
199
200
201 public void setPackaging( String packaging )
202 {
203 this.packaging = packaging;
204 }
205
206 }