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