1 | |
package org.apache.maven.plugin.assembly.mojos; |
2 | |
|
3 | |
import java.util.ArrayList; |
4 | |
import java.util.Iterator; |
5 | |
import java.util.List; |
6 | |
|
7 | |
import org.apache.maven.plugin.AbstractMojo; |
8 | |
import org.apache.maven.plugin.MojoExecutionException; |
9 | |
|
10 | |
|
11 | |
|
12 | |
|
13 | |
|
14 | |
|
15 | |
|
16 | |
|
17 | |
|
18 | |
|
19 | 0 | public class HelpMojo |
20 | |
extends AbstractMojo |
21 | |
{ |
22 | |
|
23 | |
|
24 | |
|
25 | |
|
26 | |
|
27 | |
private boolean detail; |
28 | |
|
29 | |
|
30 | |
|
31 | |
|
32 | |
|
33 | |
|
34 | |
private java.lang.String goal; |
35 | |
|
36 | |
|
37 | |
|
38 | |
|
39 | |
|
40 | |
|
41 | |
private int lineLength; |
42 | |
|
43 | |
|
44 | |
|
45 | |
|
46 | |
|
47 | |
|
48 | |
private int indentSize; |
49 | |
|
50 | |
|
51 | |
|
52 | |
public void execute() |
53 | |
throws MojoExecutionException |
54 | |
{ |
55 | 0 | if ( lineLength <= 0 ) |
56 | |
{ |
57 | 0 | getLog().warn( "The parameter 'lineLength' should be positive, using '80' as default." ); |
58 | 0 | lineLength = 80; |
59 | |
} |
60 | 0 | if ( indentSize <= 0 ) |
61 | |
{ |
62 | 0 | getLog().warn( "The parameter 'indentSize' should be positive, using '2' as default." ); |
63 | 0 | indentSize = 2; |
64 | |
} |
65 | |
|
66 | 0 | StringBuffer sb = new StringBuffer(); |
67 | |
|
68 | 0 | append( sb, "org.apache.maven.plugins:maven-assembly-plugin:2.2.1", 0 ); |
69 | 0 | append( sb, "", 0 ); |
70 | |
|
71 | 0 | append( sb, "Maven Assembly Plugin", 0 ); |
72 | 0 | append( sb, "A Maven plugin to create archives of your project\'s sources, classes, dependencies etc. from flexible assembly descriptors.", 1 ); |
73 | 0 | append( sb, "", 0 ); |
74 | |
|
75 | 0 | if ( goal == null || goal.length() <= 0 ) |
76 | |
{ |
77 | 0 | append( sb, "This plugin has 8 goals:", 0 ); |
78 | 0 | append( sb, "", 0 ); |
79 | |
} |
80 | |
|
81 | 0 | if ( goal == null || goal.length() <= 0 || "assembly".equals( goal ) ) |
82 | |
{ |
83 | 0 | append( sb, "assembly:assembly", 0 ); |
84 | 0 | append( sb, "Deprecated. Use assembly:single instead! The assembly:assembly mojo leads to non-standard builds.", 1 ); |
85 | 0 | if ( detail ) |
86 | |
{ |
87 | 0 | append( sb, "", 0 ); |
88 | 0 | append( sb, "Assemble an application bundle or distribution using an assembly descriptor from the command line. This goal will force Maven to build all included POMs up to the package phase BEFORE the assembly is processed.\nNOTE: This goal should ONLY be run from the command line, and if building a multimodule project it should be used from the root POM. Use the assembly:single goal for binding your assembly to the lifecycle.\n", 1 ); |
89 | |
} |
90 | 0 | append( sb, "", 0 ); |
91 | 0 | if ( detail ) |
92 | |
{ |
93 | 0 | append( sb, "Available parameters:", 1 ); |
94 | 0 | append( sb, "", 0 ); |
95 | |
|
96 | 0 | append( sb, "appendAssemblyId (Default: true)", 2 ); |
97 | 0 | append( sb, "Set to false to exclude the assembly id from the assembly final name.", 3 ); |
98 | 0 | append( sb, "Expression: ${assembly.appendAssemblyId}", 3 ); |
99 | 0 | append( sb, "", 0 ); |
100 | |
|
101 | 0 | append( sb, "archive", 2 ); |
102 | 0 | append( sb, "This is a set of instructions to the archive builder, especially for building .jar files. It enables you to specify a Manifest file for the jar, in addition to other options.", 3 ); |
103 | 0 | append( sb, "", 0 ); |
104 | |
|
105 | 0 | append( sb, "archiveBaseDirectory", 2 ); |
106 | 0 | append( sb, "This is the base directory from which archive files are created. This base directory pre-pended to any <directory> specifications in the assembly descriptor. This is an optional parameter.", 3 ); |
107 | 0 | append( sb, "", 0 ); |
108 | |
|
109 | 0 | append( sb, "archiverConfig", 2 ); |
110 | 0 | append( sb, "Allows additional configuration options that are specific to a particular type of archive format. This is intended to capture an XML configuration that will be used to reflectively setup the options on the archiver instance.\nFor instance, to direct an assembly with the \'ear\' format to use a particular deployment descriptor, you should specify the following for the archiverConfig value in your plugin configuration:\n\n<appxml>${project.basedir}/somepath/app.xml</appxml>\n", 3 ); |
111 | 0 | append( sb, "", 0 ); |
112 | |
|
113 | 0 | append( sb, "attach (Default: true)", 2 ); |
114 | 0 | append( sb, "Controls whether the assembly plugin tries to attach the resulting assembly to the project.", 3 ); |
115 | 0 | append( sb, "Expression: ${assembly.attach}", 3 ); |
116 | 0 | append( sb, "", 0 ); |
117 | |
|
118 | 0 | append( sb, "classifier", 2 ); |
119 | 0 | append( sb, "Deprecated. Please use the Assembly\'s id for classifier instead", 3 ); |
120 | 0 | append( sb, "", 0 ); |
121 | 0 | append( sb, "This is the artifact classifier to be used for the resultant assembly artifact. Normally, you would use the assembly-id instead of specifying this here.", 3 ); |
122 | 0 | append( sb, "Expression: ${classifier}", 3 ); |
123 | 0 | append( sb, "", 0 ); |
124 | |
|
125 | 0 | append( sb, "descriptor", 2 ); |
126 | 0 | append( sb, "Deprecated. Please use descriptors instead", 3 ); |
127 | 0 | append( sb, "", 0 ); |
128 | 0 | append( sb, "Assembly XML Descriptor file. This must be the path to your customized descriptor file.", 3 ); |
129 | 0 | append( sb, "Expression: ${descriptor}", 3 ); |
130 | 0 | append( sb, "", 0 ); |
131 | |
|
132 | 0 | append( sb, "descriptorId", 2 ); |
133 | 0 | append( sb, "Deprecated. Please use descriptorRefs instead", 3 ); |
134 | 0 | append( sb, "", 0 ); |
135 | 0 | append( sb, "Predefined Assembly Descriptor Id\'s. You can select bin, jar-with-dependencies, or src.", 3 ); |
136 | 0 | append( sb, "Expression: ${descriptorId}", 3 ); |
137 | 0 | append( sb, "", 0 ); |
138 | |
|
139 | 0 | append( sb, "descriptorRefs", 2 ); |
140 | 0 | append( sb, "A list of references to assembly descriptors available on the plugin\'s classpath. The default classpath includes these built-in descriptors: bin, jar-with-dependencies, src, and project. You can add others by adding dependencies to the plugin.", 3 ); |
141 | 0 | append( sb, "", 0 ); |
142 | |
|
143 | 0 | append( sb, "descriptors", 2 ); |
144 | 0 | append( sb, "A list of descriptor files to generate from.", 3 ); |
145 | 0 | append( sb, "", 0 ); |
146 | |
|
147 | 0 | append( sb, "descriptorSourceDirectory", 2 ); |
148 | 0 | append( sb, "Directory to scan for descriptor files in. NOTE: This may not work correctly with assembly components.", 3 ); |
149 | 0 | append( sb, "", 0 ); |
150 | |
|
151 | 0 | append( sb, "dryRun (Default: false)", 2 ); |
152 | 0 | append( sb, "If this flag is set, everything up to the call to Archiver.createArchive() will be executed.", 3 ); |
153 | 0 | append( sb, "Expression: ${assembly.dryRun}", 3 ); |
154 | 0 | append( sb, "", 0 ); |
155 | |
|
156 | 0 | append( sb, "executedProject", 2 ); |
157 | 0 | append( sb, "Get the executed project from the forked lifecycle.", 3 ); |
158 | 0 | append( sb, "Expression: ${executedProject}", 3 ); |
159 | 0 | append( sb, "", 0 ); |
160 | |
|
161 | 0 | append( sb, "filters", 2 ); |
162 | 0 | append( sb, "(no description available)", 3 ); |
163 | 0 | append( sb, "", 0 ); |
164 | |
|
165 | 0 | append( sb, "finalName (Default: ${project.build.finalName})", 2 ); |
166 | 0 | append( sb, "The filename of the assembled distribution file.", 3 ); |
167 | 0 | append( sb, "Required: Yes", 3 ); |
168 | 0 | append( sb, "", 0 ); |
169 | |
|
170 | 0 | append( sb, "ignoreDirFormatExtensions (Default: true)", 2 ); |
171 | 0 | append( sb, "If this flag is set, the \'.dir\' suffix will be suppressed in the output directory name when using assembly/format == \'dir\' and other formats that begin with \'dir\'.\nNOTE: Since 2.2-beta-3, the default-value for this is true, NOT false as it used to be.", 3 ); |
172 | 0 | append( sb, "", 0 ); |
173 | |
|
174 | 0 | append( sb, "ignoreMissingDescriptor (Default: false)", 2 ); |
175 | 0 | append( sb, "Set to true in order to not fail when a descriptor is missing.", 3 ); |
176 | 0 | append( sb, "Expression: ${assembly.ignoreMissingDescriptor}", 3 ); |
177 | 0 | append( sb, "", 0 ); |
178 | |
|
179 | 0 | append( sb, "ignorePermissions (Default: false)", 2 ); |
180 | 0 | append( sb, "Set to true in order to avoid all chmod calls.\n\nNOTE: This will cause the assembly plugin to DISREGARD all fileMode/directoryMode settings in the assembly descriptor, and all file permissions in unpacked dependencies!\n", 3 ); |
181 | 0 | append( sb, "Expression: ${assembly.ignorePermissions}", 3 ); |
182 | 0 | append( sb, "", 0 ); |
183 | |
|
184 | 0 | append( sb, "includeSite (Default: false)", 2 ); |
185 | 0 | append( sb, "Deprecated. Please set this variable in the assembly descriptor instead", 3 ); |
186 | 0 | append( sb, "", 0 ); |
187 | 0 | append( sb, "Set to true to include the site generated by site:site goal.", 3 ); |
188 | 0 | append( sb, "Expression: ${includeSite}", 3 ); |
189 | 0 | append( sb, "", 0 ); |
190 | |
|
191 | 0 | append( sb, "outputDirectory (Default: ${project.build.directory})", 2 ); |
192 | 0 | append( sb, "The output directory of the assembled distribution file.", 3 ); |
193 | 0 | append( sb, "Required: Yes", 3 ); |
194 | 0 | append( sb, "", 0 ); |
195 | |
|
196 | 0 | append( sb, "runOnlyAtExecutionRoot (Default: false)", 2 ); |
197 | 0 | append( sb, "This will cause the assembly to run only at the top of a given module tree. That is, run in the project contained in the same folder where the mvn execution was launched.", 3 ); |
198 | 0 | append( sb, "Expression: ${assembly.runOnlyAtExecutionRoot}", 3 ); |
199 | 0 | append( sb, "", 0 ); |
200 | |
|
201 | 0 | append( sb, "skipAssembly (Default: false)", 2 ); |
202 | 0 | append( sb, "Flag allowing one or more executions of the assembly plugin to be configured as skipped for a particular build. This makes the assembly plugin more controllable from profiles.", 3 ); |
203 | 0 | append( sb, "Expression: ${assembly.skipAssembly}", 3 ); |
204 | 0 | append( sb, "", 0 ); |
205 | |
|
206 | 0 | append( sb, "tarLongFileMode (Default: warn)", 2 ); |
207 | 0 | append( sb, "Sets the TarArchiver behavior on file paths with more than 100 characters length. Valid values are: \'warn\' (default), \'fail\', \'truncate\', \'gnu\', or \'omit\'.", 3 ); |
208 | 0 | append( sb, "Expression: ${assembly.tarLongFileMode}", 3 ); |
209 | 0 | append( sb, "", 0 ); |
210 | |
|
211 | 0 | append( sb, "updateOnly (Default: false)", 2 ); |
212 | 0 | append( sb, "This will cause the assembly to only update an existing archive, if it exists.", 3 ); |
213 | 0 | append( sb, "Expression: ${assembly.updatOnly}", 3 ); |
214 | 0 | append( sb, "", 0 ); |
215 | |
|
216 | 0 | append( sb, "useJvmChmod (Default: false)", 2 ); |
217 | 0 | append( sb, "will use the jvm chmod, this is available for user and all level group level will be ignored\n", 3 ); |
218 | 0 | append( sb, "Expression: ${assembly.useJvmChmod}", 3 ); |
219 | 0 | append( sb, "", 0 ); |
220 | |
|
221 | 0 | append( sb, "workDirectory (Default: ${project.build.directory}/assembly/work)", 2 ); |
222 | 0 | append( sb, "Directory to unpack JARs into if needed", 3 ); |
223 | 0 | append( sb, "Required: Yes", 3 ); |
224 | 0 | append( sb, "", 0 ); |
225 | |
} |
226 | |
} |
227 | |
|
228 | 0 | if ( goal == null || goal.length() <= 0 || "attached".equals( goal ) ) |
229 | |
{ |
230 | 0 | append( sb, "assembly:attached", 0 ); |
231 | 0 | append( sb, "Deprecated. Use assembly:single instead! The assembly:attached mojo leads to non-standard builds.", 1 ); |
232 | 0 | if ( detail ) |
233 | |
{ |
234 | 0 | append( sb, "", 0 ); |
235 | 0 | append( sb, "Assemble an application bundle or distribution from an assembly descriptor, WITHOUT first forcing Maven to build all POMs to the package phase (as is required by the assembly:assembly goal).\nNOTE: This goal should ONLY be run from the command line, and if building a multimodule project it should be used from the root POM. Use the assembly:single goal for binding your assembly to the lifecycle.", 1 ); |
236 | |
} |
237 | 0 | append( sb, "", 0 ); |
238 | 0 | if ( detail ) |
239 | |
{ |
240 | 0 | append( sb, "Available parameters:", 1 ); |
241 | 0 | append( sb, "", 0 ); |
242 | |
|
243 | 0 | append( sb, "appendAssemblyId (Default: true)", 2 ); |
244 | 0 | append( sb, "Set to false to exclude the assembly id from the assembly final name.", 3 ); |
245 | 0 | append( sb, "Expression: ${assembly.appendAssemblyId}", 3 ); |
246 | 0 | append( sb, "", 0 ); |
247 | |
|
248 | 0 | append( sb, "archive", 2 ); |
249 | 0 | append( sb, "This is a set of instructions to the archive builder, especially for building .jar files. It enables you to specify a Manifest file for the jar, in addition to other options.", 3 ); |
250 | 0 | append( sb, "", 0 ); |
251 | |
|
252 | 0 | append( sb, "archiveBaseDirectory", 2 ); |
253 | 0 | append( sb, "This is the base directory from which archive files are created. This base directory pre-pended to any <directory> specifications in the assembly descriptor. This is an optional parameter.", 3 ); |
254 | 0 | append( sb, "", 0 ); |
255 | |
|
256 | 0 | append( sb, "archiverConfig", 2 ); |
257 | 0 | append( sb, "Allows additional configuration options that are specific to a particular type of archive format. This is intended to capture an XML configuration that will be used to reflectively setup the options on the archiver instance.\nFor instance, to direct an assembly with the \'ear\' format to use a particular deployment descriptor, you should specify the following for the archiverConfig value in your plugin configuration:\n\n<appxml>${project.basedir}/somepath/app.xml</appxml>\n", 3 ); |
258 | 0 | append( sb, "", 0 ); |
259 | |
|
260 | 0 | append( sb, "attach (Default: true)", 2 ); |
261 | 0 | append( sb, "Controls whether the assembly plugin tries to attach the resulting assembly to the project.", 3 ); |
262 | 0 | append( sb, "Expression: ${assembly.attach}", 3 ); |
263 | 0 | append( sb, "", 0 ); |
264 | |
|
265 | 0 | append( sb, "classifier", 2 ); |
266 | 0 | append( sb, "Deprecated. Please use the Assembly\'s id for classifier instead", 3 ); |
267 | 0 | append( sb, "", 0 ); |
268 | 0 | append( sb, "This is the artifact classifier to be used for the resultant assembly artifact. Normally, you would use the assembly-id instead of specifying this here.", 3 ); |
269 | 0 | append( sb, "Expression: ${classifier}", 3 ); |
270 | 0 | append( sb, "", 0 ); |
271 | |
|
272 | 0 | append( sb, "descriptor", 2 ); |
273 | 0 | append( sb, "Deprecated. Please use descriptors instead", 3 ); |
274 | 0 | append( sb, "", 0 ); |
275 | 0 | append( sb, "Assembly XML Descriptor file. This must be the path to your customized descriptor file.", 3 ); |
276 | 0 | append( sb, "Expression: ${descriptor}", 3 ); |
277 | 0 | append( sb, "", 0 ); |
278 | |
|
279 | 0 | append( sb, "descriptorId", 2 ); |
280 | 0 | append( sb, "Deprecated. Please use descriptorRefs instead", 3 ); |
281 | 0 | append( sb, "", 0 ); |
282 | 0 | append( sb, "Predefined Assembly Descriptor Id\'s. You can select bin, jar-with-dependencies, or src.", 3 ); |
283 | 0 | append( sb, "Expression: ${descriptorId}", 3 ); |
284 | 0 | append( sb, "", 0 ); |
285 | |
|
286 | 0 | append( sb, "descriptorRefs", 2 ); |
287 | 0 | append( sb, "A list of references to assembly descriptors available on the plugin\'s classpath. The default classpath includes these built-in descriptors: bin, jar-with-dependencies, src, and project. You can add others by adding dependencies to the plugin.", 3 ); |
288 | 0 | append( sb, "", 0 ); |
289 | |
|
290 | 0 | append( sb, "descriptors", 2 ); |
291 | 0 | append( sb, "A list of descriptor files to generate from.", 3 ); |
292 | 0 | append( sb, "", 0 ); |
293 | |
|
294 | 0 | append( sb, "descriptorSourceDirectory", 2 ); |
295 | 0 | append( sb, "Directory to scan for descriptor files in. NOTE: This may not work correctly with assembly components.", 3 ); |
296 | 0 | append( sb, "", 0 ); |
297 | |
|
298 | 0 | append( sb, "dryRun (Default: false)", 2 ); |
299 | 0 | append( sb, "If this flag is set, everything up to the call to Archiver.createArchive() will be executed.", 3 ); |
300 | 0 | append( sb, "Expression: ${assembly.dryRun}", 3 ); |
301 | 0 | append( sb, "", 0 ); |
302 | |
|
303 | 0 | append( sb, "filters", 2 ); |
304 | 0 | append( sb, "(no description available)", 3 ); |
305 | 0 | append( sb, "", 0 ); |
306 | |
|
307 | 0 | append( sb, "finalName (Default: ${project.build.finalName})", 2 ); |
308 | 0 | append( sb, "The filename of the assembled distribution file.", 3 ); |
309 | 0 | append( sb, "Required: Yes", 3 ); |
310 | 0 | append( sb, "", 0 ); |
311 | |
|
312 | 0 | append( sb, "ignoreDirFormatExtensions (Default: true)", 2 ); |
313 | 0 | append( sb, "If this flag is set, the \'.dir\' suffix will be suppressed in the output directory name when using assembly/format == \'dir\' and other formats that begin with \'dir\'.\nNOTE: Since 2.2-beta-3, the default-value for this is true, NOT false as it used to be.", 3 ); |
314 | 0 | append( sb, "", 0 ); |
315 | |
|
316 | 0 | append( sb, "ignoreMissingDescriptor (Default: false)", 2 ); |
317 | 0 | append( sb, "Set to true in order to not fail when a descriptor is missing.", 3 ); |
318 | 0 | append( sb, "Expression: ${assembly.ignoreMissingDescriptor}", 3 ); |
319 | 0 | append( sb, "", 0 ); |
320 | |
|
321 | 0 | append( sb, "ignorePermissions (Default: false)", 2 ); |
322 | 0 | append( sb, "Set to true in order to avoid all chmod calls.\n\nNOTE: This will cause the assembly plugin to DISREGARD all fileMode/directoryMode settings in the assembly descriptor, and all file permissions in unpacked dependencies!\n", 3 ); |
323 | 0 | append( sb, "Expression: ${assembly.ignorePermissions}", 3 ); |
324 | 0 | append( sb, "", 0 ); |
325 | |
|
326 | 0 | append( sb, "includeSite (Default: false)", 2 ); |
327 | 0 | append( sb, "Deprecated. Please set this variable in the assembly descriptor instead", 3 ); |
328 | 0 | append( sb, "", 0 ); |
329 | 0 | append( sb, "Set to true to include the site generated by site:site goal.", 3 ); |
330 | 0 | append( sb, "Expression: ${includeSite}", 3 ); |
331 | 0 | append( sb, "", 0 ); |
332 | |
|
333 | 0 | append( sb, "outputDirectory (Default: ${project.build.directory})", 2 ); |
334 | 0 | append( sb, "The output directory of the assembled distribution file.", 3 ); |
335 | 0 | append( sb, "Required: Yes", 3 ); |
336 | 0 | append( sb, "", 0 ); |
337 | |
|
338 | 0 | append( sb, "runOnlyAtExecutionRoot (Default: false)", 2 ); |
339 | 0 | append( sb, "This will cause the assembly to run only at the top of a given module tree. That is, run in the project contained in the same folder where the mvn execution was launched.", 3 ); |
340 | 0 | append( sb, "Expression: ${assembly.runOnlyAtExecutionRoot}", 3 ); |
341 | 0 | append( sb, "", 0 ); |
342 | |
|
343 | 0 | append( sb, "skipAssembly (Default: false)", 2 ); |
344 | 0 | append( sb, "Flag allowing one or more executions of the assembly plugin to be configured as skipped for a particular build. This makes the assembly plugin more controllable from profiles.", 3 ); |
345 | 0 | append( sb, "Expression: ${assembly.skipAssembly}", 3 ); |
346 | 0 | append( sb, "", 0 ); |
347 | |
|
348 | 0 | append( sb, "tarLongFileMode (Default: warn)", 2 ); |
349 | 0 | append( sb, "Sets the TarArchiver behavior on file paths with more than 100 characters length. Valid values are: \'warn\' (default), \'fail\', \'truncate\', \'gnu\', or \'omit\'.", 3 ); |
350 | 0 | append( sb, "Expression: ${assembly.tarLongFileMode}", 3 ); |
351 | 0 | append( sb, "", 0 ); |
352 | |
|
353 | 0 | append( sb, "updateOnly (Default: false)", 2 ); |
354 | 0 | append( sb, "This will cause the assembly to only update an existing archive, if it exists.", 3 ); |
355 | 0 | append( sb, "Expression: ${assembly.updatOnly}", 3 ); |
356 | 0 | append( sb, "", 0 ); |
357 | |
|
358 | 0 | append( sb, "useJvmChmod (Default: false)", 2 ); |
359 | 0 | append( sb, "will use the jvm chmod, this is available for user and all level group level will be ignored\n", 3 ); |
360 | 0 | append( sb, "Expression: ${assembly.useJvmChmod}", 3 ); |
361 | 0 | append( sb, "", 0 ); |
362 | |
|
363 | 0 | append( sb, "workDirectory (Default: ${project.build.directory}/assembly/work)", 2 ); |
364 | 0 | append( sb, "Directory to unpack JARs into if needed", 3 ); |
365 | 0 | append( sb, "Required: Yes", 3 ); |
366 | 0 | append( sb, "", 0 ); |
367 | |
} |
368 | |
} |
369 | |
|
370 | 0 | if ( goal == null || goal.length() <= 0 || "directory".equals( goal ) ) |
371 | |
{ |
372 | 0 | append( sb, "assembly:directory", 0 ); |
373 | 0 | append( sb, "Deprecated. Use assembly:single and an assembly with format == dir instead! This mojo is redundant.", 1 ); |
374 | 0 | if ( detail ) |
375 | |
{ |
376 | 0 | append( sb, "", 0 ); |
377 | 0 | append( sb, "Like the assembly:attached goal, assemble an application bundle or distribution using an assembly descriptor from the command line. This goal will force Maven to build all included POMs up to the package phase BEFORE the assembly is processed. This goal differs from assembly:assembly in that it ignores the <formats/> section of the assembly descriptor, and forces the assembly to be created as a directory in the project\'s build-output directory (usually ./target).\nThis goal is also functionally equivalent to using the assembly:assembly goal in conjunction with the dir assembly format.\nNOTE: This goal should ONLY be run from the command line, and if building a multimodule project it should be used from the root POM. Use the assembly:directory-single goal for binding your assembly to the lifecycle.", 1 ); |
378 | |
} |
379 | 0 | append( sb, "", 0 ); |
380 | 0 | if ( detail ) |
381 | |
{ |
382 | 0 | append( sb, "Available parameters:", 1 ); |
383 | 0 | append( sb, "", 0 ); |
384 | |
|
385 | 0 | append( sb, "appendAssemblyId (Default: true)", 2 ); |
386 | 0 | append( sb, "Set to false to exclude the assembly id from the assembly final name.", 3 ); |
387 | 0 | append( sb, "Expression: ${assembly.appendAssemblyId}", 3 ); |
388 | 0 | append( sb, "", 0 ); |
389 | |
|
390 | 0 | append( sb, "archive", 2 ); |
391 | 0 | append( sb, "This is a set of instructions to the archive builder, especially for building .jar files. It enables you to specify a Manifest file for the jar, in addition to other options.", 3 ); |
392 | 0 | append( sb, "", 0 ); |
393 | |
|
394 | 0 | append( sb, "archiveBaseDirectory", 2 ); |
395 | 0 | append( sb, "This is the base directory from which archive files are created. This base directory pre-pended to any <directory> specifications in the assembly descriptor. This is an optional parameter.", 3 ); |
396 | 0 | append( sb, "", 0 ); |
397 | |
|
398 | 0 | append( sb, "archiverConfig", 2 ); |
399 | 0 | append( sb, "Allows additional configuration options that are specific to a particular type of archive format. This is intended to capture an XML configuration that will be used to reflectively setup the options on the archiver instance.\nFor instance, to direct an assembly with the \'ear\' format to use a particular deployment descriptor, you should specify the following for the archiverConfig value in your plugin configuration:\n\n<appxml>${project.basedir}/somepath/app.xml</appxml>\n", 3 ); |
400 | 0 | append( sb, "", 0 ); |
401 | |
|
402 | 0 | append( sb, "attach (Default: true)", 2 ); |
403 | 0 | append( sb, "Controls whether the assembly plugin tries to attach the resulting assembly to the project.", 3 ); |
404 | 0 | append( sb, "Expression: ${assembly.attach}", 3 ); |
405 | 0 | append( sb, "", 0 ); |
406 | |
|
407 | 0 | append( sb, "classifier", 2 ); |
408 | 0 | append( sb, "Deprecated. Please use the Assembly\'s id for classifier instead", 3 ); |
409 | 0 | append( sb, "", 0 ); |
410 | 0 | append( sb, "This is the artifact classifier to be used for the resultant assembly artifact. Normally, you would use the assembly-id instead of specifying this here.", 3 ); |
411 | 0 | append( sb, "Expression: ${classifier}", 3 ); |
412 | 0 | append( sb, "", 0 ); |
413 | |
|
414 | 0 | append( sb, "descriptor", 2 ); |
415 | 0 | append( sb, "Deprecated. Please use descriptors instead", 3 ); |
416 | 0 | append( sb, "", 0 ); |
417 | 0 | append( sb, "Assembly XML Descriptor file. This must be the path to your customized descriptor file.", 3 ); |
418 | 0 | append( sb, "Expression: ${descriptor}", 3 ); |
419 | 0 | append( sb, "", 0 ); |
420 | |
|
421 | 0 | append( sb, "descriptorId", 2 ); |
422 | 0 | append( sb, "Deprecated. Please use descriptorRefs instead", 3 ); |
423 | 0 | append( sb, "", 0 ); |
424 | 0 | append( sb, "Predefined Assembly Descriptor Id\'s. You can select bin, jar-with-dependencies, or src.", 3 ); |
425 | 0 | append( sb, "Expression: ${descriptorId}", 3 ); |
426 | 0 | append( sb, "", 0 ); |
427 | |
|
428 | 0 | append( sb, "descriptorRefs", 2 ); |
429 | 0 | append( sb, "A list of references to assembly descriptors available on the plugin\'s classpath. The default classpath includes these built-in descriptors: bin, jar-with-dependencies, src, and project. You can add others by adding dependencies to the plugin.", 3 ); |
430 | 0 | append( sb, "", 0 ); |
431 | |
|
432 | 0 | append( sb, "descriptors", 2 ); |
433 | 0 | append( sb, "A list of descriptor files to generate from.", 3 ); |
434 | 0 | append( sb, "", 0 ); |
435 | |
|
436 | 0 | append( sb, "descriptorSourceDirectory", 2 ); |
437 | 0 | append( sb, "Directory to scan for descriptor files in. NOTE: This may not work correctly with assembly components.", 3 ); |
438 | 0 | append( sb, "", 0 ); |
439 | |
|
440 | 0 | append( sb, "dryRun (Default: false)", 2 ); |
441 | 0 | append( sb, "If this flag is set, everything up to the call to Archiver.createArchive() will be executed.", 3 ); |
442 | 0 | append( sb, "Expression: ${assembly.dryRun}", 3 ); |
443 | 0 | append( sb, "", 0 ); |
444 | |
|
445 | 0 | append( sb, "executedProject", 2 ); |
446 | 0 | append( sb, "Get the executed project from the forked lifecycle.", 3 ); |
447 | 0 | append( sb, "Expression: ${executedProject}", 3 ); |
448 | 0 | append( sb, "", 0 ); |
449 | |
|
450 | 0 | append( sb, "filters", 2 ); |
451 | 0 | append( sb, "(no description available)", 3 ); |
452 | 0 | append( sb, "", 0 ); |
453 | |
|
454 | 0 | append( sb, "finalName (Default: ${project.build.finalName})", 2 ); |
455 | 0 | append( sb, "The filename of the assembled distribution file.", 3 ); |
456 | 0 | append( sb, "Required: Yes", 3 ); |
457 | 0 | append( sb, "", 0 ); |
458 | |
|
459 | 0 | append( sb, "ignoreDirFormatExtensions (Default: true)", 2 ); |
460 | 0 | append( sb, "If this flag is set, the \'.dir\' suffix will be suppressed in the output directory name when using assembly/format == \'dir\' and other formats that begin with \'dir\'.\nNOTE: Since 2.2-beta-3, the default-value for this is true, NOT false as it used to be.", 3 ); |
461 | 0 | append( sb, "", 0 ); |
462 | |
|
463 | 0 | append( sb, "ignoreMissingDescriptor (Default: false)", 2 ); |
464 | 0 | append( sb, "Set to true in order to not fail when a descriptor is missing.", 3 ); |
465 | 0 | append( sb, "Expression: ${assembly.ignoreMissingDescriptor}", 3 ); |
466 | 0 | append( sb, "", 0 ); |
467 | |
|
468 | 0 | append( sb, "ignorePermissions (Default: false)", 2 ); |
469 | 0 | append( sb, "Set to true in order to avoid all chmod calls.\n\nNOTE: This will cause the assembly plugin to DISREGARD all fileMode/directoryMode settings in the assembly descriptor, and all file permissions in unpacked dependencies!\n", 3 ); |
470 | 0 | append( sb, "Expression: ${assembly.ignorePermissions}", 3 ); |
471 | 0 | append( sb, "", 0 ); |
472 | |
|
473 | 0 | append( sb, "includeSite (Default: false)", 2 ); |
474 | 0 | append( sb, "Deprecated. Please set this variable in the assembly descriptor instead", 3 ); |
475 | 0 | append( sb, "", 0 ); |
476 | 0 | append( sb, "Set to true to include the site generated by site:site goal.", 3 ); |
477 | 0 | append( sb, "Expression: ${includeSite}", 3 ); |
478 | 0 | append( sb, "", 0 ); |
479 | |
|
480 | 0 | append( sb, "outputDirectory (Default: ${project.build.directory})", 2 ); |
481 | 0 | append( sb, "The output directory of the assembled distribution file.", 3 ); |
482 | 0 | append( sb, "Required: Yes", 3 ); |
483 | 0 | append( sb, "", 0 ); |
484 | |
|
485 | 0 | append( sb, "runOnlyAtExecutionRoot (Default: false)", 2 ); |
486 | 0 | append( sb, "This will cause the assembly to run only at the top of a given module tree. That is, run in the project contained in the same folder where the mvn execution was launched.", 3 ); |
487 | 0 | append( sb, "Expression: ${assembly.runOnlyAtExecutionRoot}", 3 ); |
488 | 0 | append( sb, "", 0 ); |
489 | |
|
490 | 0 | append( sb, "skipAssembly (Default: false)", 2 ); |
491 | 0 | append( sb, "Flag allowing one or more executions of the assembly plugin to be configured as skipped for a particular build. This makes the assembly plugin more controllable from profiles.", 3 ); |
492 | 0 | append( sb, "Expression: ${assembly.skipAssembly}", 3 ); |
493 | 0 | append( sb, "", 0 ); |
494 | |
|
495 | 0 | append( sb, "tarLongFileMode (Default: warn)", 2 ); |
496 | 0 | append( sb, "Sets the TarArchiver behavior on file paths with more than 100 characters length. Valid values are: \'warn\' (default), \'fail\', \'truncate\', \'gnu\', or \'omit\'.", 3 ); |
497 | 0 | append( sb, "Expression: ${assembly.tarLongFileMode}", 3 ); |
498 | 0 | append( sb, "", 0 ); |
499 | |
|
500 | 0 | append( sb, "updateOnly (Default: false)", 2 ); |
501 | 0 | append( sb, "This will cause the assembly to only update an existing archive, if it exists.", 3 ); |
502 | 0 | append( sb, "Expression: ${assembly.updatOnly}", 3 ); |
503 | 0 | append( sb, "", 0 ); |
504 | |
|
505 | 0 | append( sb, "useJvmChmod (Default: false)", 2 ); |
506 | 0 | append( sb, "will use the jvm chmod, this is available for user and all level group level will be ignored\n", 3 ); |
507 | 0 | append( sb, "Expression: ${assembly.useJvmChmod}", 3 ); |
508 | 0 | append( sb, "", 0 ); |
509 | |
|
510 | 0 | append( sb, "workDirectory (Default: ${project.build.directory}/assembly/work)", 2 ); |
511 | 0 | append( sb, "Directory to unpack JARs into if needed", 3 ); |
512 | 0 | append( sb, "Required: Yes", 3 ); |
513 | 0 | append( sb, "", 0 ); |
514 | |
} |
515 | |
} |
516 | |
|
517 | 0 | if ( goal == null || goal.length() <= 0 || "directory-inline".equals( goal ) ) |
518 | |
{ |
519 | 0 | append( sb, "assembly:directory-inline", 0 ); |
520 | 0 | append( sb, "Deprecated. Use assembly:single and an assembly with format == dir instead! This mojo is redundant, and leads to non-standard builds.", 1 ); |
521 | 0 | if ( detail ) |
522 | |
{ |
523 | 0 | append( sb, "", 0 ); |
524 | 0 | append( sb, "Like the assembly:attached goal, assemble an application bundle or distribution from an assembly descriptor, WITHOUT first forcing Maven to build all POMs to the package phase (as is required by the assembly:assembly goal). This goal differs from assembly:attached in that it ignores the <formats/> section of the assembly descriptor, and forces the assembly to be created as a directory in the project\'s build-output directory (usually ./target).\nThis goal is also functionally equivalent to using the assembly:attached goal in conjunction with the dir assembly format.\nNOTE: This goal should ONLY be run from the command line, and if building a multimodule project it should be used from the root POM. Use the assembly:directory-single goal for binding your assembly to the lifecycle.", 1 ); |
525 | |
} |
526 | 0 | append( sb, "", 0 ); |
527 | 0 | if ( detail ) |
528 | |
{ |
529 | 0 | append( sb, "Available parameters:", 1 ); |
530 | 0 | append( sb, "", 0 ); |
531 | |
|
532 | 0 | append( sb, "appendAssemblyId (Default: true)", 2 ); |
533 | 0 | append( sb, "Set to false to exclude the assembly id from the assembly final name.", 3 ); |
534 | 0 | append( sb, "Expression: ${assembly.appendAssemblyId}", 3 ); |
535 | 0 | append( sb, "", 0 ); |
536 | |
|
537 | 0 | append( sb, "archive", 2 ); |
538 | 0 | append( sb, "This is a set of instructions to the archive builder, especially for building .jar files. It enables you to specify a Manifest file for the jar, in addition to other options.", 3 ); |
539 | 0 | append( sb, "", 0 ); |
540 | |
|
541 | 0 | append( sb, "archiveBaseDirectory", 2 ); |
542 | 0 | append( sb, "This is the base directory from which archive files are created. This base directory pre-pended to any <directory> specifications in the assembly descriptor. This is an optional parameter.", 3 ); |
543 | 0 | append( sb, "", 0 ); |
544 | |
|
545 | 0 | append( sb, "archiverConfig", 2 ); |
546 | 0 | append( sb, "Allows additional configuration options that are specific to a particular type of archive format. This is intended to capture an XML configuration that will be used to reflectively setup the options on the archiver instance.\nFor instance, to direct an assembly with the \'ear\' format to use a particular deployment descriptor, you should specify the following for the archiverConfig value in your plugin configuration:\n\n<appxml>${project.basedir}/somepath/app.xml</appxml>\n", 3 ); |
547 | 0 | append( sb, "", 0 ); |
548 | |
|
549 | 0 | append( sb, "attach (Default: true)", 2 ); |
550 | 0 | append( sb, "Controls whether the assembly plugin tries to attach the resulting assembly to the project.", 3 ); |
551 | 0 | append( sb, "Expression: ${assembly.attach}", 3 ); |
552 | 0 | append( sb, "", 0 ); |
553 | |
|
554 | 0 | append( sb, "classifier", 2 ); |
555 | 0 | append( sb, "Deprecated. Please use the Assembly\'s id for classifier instead", 3 ); |
556 | 0 | append( sb, "", 0 ); |
557 | 0 | append( sb, "This is the artifact classifier to be used for the resultant assembly artifact. Normally, you would use the assembly-id instead of specifying this here.", 3 ); |
558 | 0 | append( sb, "Expression: ${classifier}", 3 ); |
559 | 0 | append( sb, "", 0 ); |
560 | |
|
561 | 0 | append( sb, "descriptor", 2 ); |
562 | 0 | append( sb, "Deprecated. Please use descriptors instead", 3 ); |
563 | 0 | append( sb, "", 0 ); |
564 | 0 | append( sb, "Assembly XML Descriptor file. This must be the path to your customized descriptor file.", 3 ); |
565 | 0 | append( sb, "Expression: ${descriptor}", 3 ); |
566 | 0 | append( sb, "", 0 ); |
567 | |
|
568 | 0 | append( sb, "descriptorId", 2 ); |
569 | 0 | append( sb, "Deprecated. Please use descriptorRefs instead", 3 ); |
570 | 0 | append( sb, "", 0 ); |
571 | 0 | append( sb, "Predefined Assembly Descriptor Id\'s. You can select bin, jar-with-dependencies, or src.", 3 ); |
572 | 0 | append( sb, "Expression: ${descriptorId}", 3 ); |
573 | 0 | append( sb, "", 0 ); |
574 | |
|
575 | 0 | append( sb, "descriptorRefs", 2 ); |
576 | 0 | append( sb, "A list of references to assembly descriptors available on the plugin\'s classpath. The default classpath includes these built-in descriptors: bin, jar-with-dependencies, src, and project. You can add others by adding dependencies to the plugin.", 3 ); |
577 | 0 | append( sb, "", 0 ); |
578 | |
|
579 | 0 | append( sb, "descriptors", 2 ); |
580 | 0 | append( sb, "A list of descriptor files to generate from.", 3 ); |
581 | 0 | append( sb, "", 0 ); |
582 | |
|
583 | 0 | append( sb, "descriptorSourceDirectory", 2 ); |
584 | 0 | append( sb, "Directory to scan for descriptor files in. NOTE: This may not work correctly with assembly components.", 3 ); |
585 | 0 | append( sb, "", 0 ); |
586 | |
|
587 | 0 | append( sb, "dryRun (Default: false)", 2 ); |
588 | 0 | append( sb, "If this flag is set, everything up to the call to Archiver.createArchive() will be executed.", 3 ); |
589 | 0 | append( sb, "Expression: ${assembly.dryRun}", 3 ); |
590 | 0 | append( sb, "", 0 ); |
591 | |
|
592 | 0 | append( sb, "filters", 2 ); |
593 | 0 | append( sb, "(no description available)", 3 ); |
594 | 0 | append( sb, "", 0 ); |
595 | |
|
596 | 0 | append( sb, "finalName (Default: ${project.build.finalName})", 2 ); |
597 | 0 | append( sb, "The filename of the assembled distribution file.", 3 ); |
598 | 0 | append( sb, "Required: Yes", 3 ); |
599 | 0 | append( sb, "", 0 ); |
600 | |
|
601 | 0 | append( sb, "ignoreDirFormatExtensions (Default: true)", 2 ); |
602 | 0 | append( sb, "If this flag is set, the \'.dir\' suffix will be suppressed in the output directory name when using assembly/format == \'dir\' and other formats that begin with \'dir\'.\nNOTE: Since 2.2-beta-3, the default-value for this is true, NOT false as it used to be.", 3 ); |
603 | 0 | append( sb, "", 0 ); |
604 | |
|
605 | 0 | append( sb, "ignoreMissingDescriptor (Default: false)", 2 ); |
606 | 0 | append( sb, "Set to true in order to not fail when a descriptor is missing.", 3 ); |
607 | 0 | append( sb, "Expression: ${assembly.ignoreMissingDescriptor}", 3 ); |
608 | 0 | append( sb, "", 0 ); |
609 | |
|
610 | 0 | append( sb, "ignorePermissions (Default: false)", 2 ); |
611 | 0 | append( sb, "Set to true in order to avoid all chmod calls.\n\nNOTE: This will cause the assembly plugin to DISREGARD all fileMode/directoryMode settings in the assembly descriptor, and all file permissions in unpacked dependencies!\n", 3 ); |
612 | 0 | append( sb, "Expression: ${assembly.ignorePermissions}", 3 ); |
613 | 0 | append( sb, "", 0 ); |
614 | |
|
615 | 0 | append( sb, "includeSite (Default: false)", 2 ); |
616 | 0 | append( sb, "Deprecated. Please set this variable in the assembly descriptor instead", 3 ); |
617 | 0 | append( sb, "", 0 ); |
618 | 0 | append( sb, "Set to true to include the site generated by site:site goal.", 3 ); |
619 | 0 | append( sb, "Expression: ${includeSite}", 3 ); |
620 | 0 | append( sb, "", 0 ); |
621 | |
|
622 | 0 | append( sb, "outputDirectory (Default: ${project.build.directory})", 2 ); |
623 | 0 | append( sb, "The output directory of the assembled distribution file.", 3 ); |
624 | 0 | append( sb, "Required: Yes", 3 ); |
625 | 0 | append( sb, "", 0 ); |
626 | |
|
627 | 0 | append( sb, "runOnlyAtExecutionRoot (Default: false)", 2 ); |
628 | 0 | append( sb, "This will cause the assembly to run only at the top of a given module tree. That is, run in the project contained in the same folder where the mvn execution was launched.", 3 ); |
629 | 0 | append( sb, "Expression: ${assembly.runOnlyAtExecutionRoot}", 3 ); |
630 | 0 | append( sb, "", 0 ); |
631 | |
|
632 | 0 | append( sb, "skipAssembly (Default: false)", 2 ); |
633 | 0 | append( sb, "Flag allowing one or more executions of the assembly plugin to be configured as skipped for a particular build. This makes the assembly plugin more controllable from profiles.", 3 ); |
634 | 0 | append( sb, "Expression: ${assembly.skipAssembly}", 3 ); |
635 | 0 | append( sb, "", 0 ); |
636 | |
|
637 | 0 | append( sb, "tarLongFileMode (Default: warn)", 2 ); |
638 | 0 | append( sb, "Sets the TarArchiver behavior on file paths with more than 100 characters length. Valid values are: \'warn\' (default), \'fail\', \'truncate\', \'gnu\', or \'omit\'.", 3 ); |
639 | 0 | append( sb, "Expression: ${assembly.tarLongFileMode}", 3 ); |
640 | 0 | append( sb, "", 0 ); |
641 | |
|
642 | 0 | append( sb, "updateOnly (Default: false)", 2 ); |
643 | 0 | append( sb, "This will cause the assembly to only update an existing archive, if it exists.", 3 ); |
644 | 0 | append( sb, "Expression: ${assembly.updatOnly}", 3 ); |
645 | 0 | append( sb, "", 0 ); |
646 | |
|
647 | 0 | append( sb, "useJvmChmod (Default: false)", 2 ); |
648 | 0 | append( sb, "will use the jvm chmod, this is available for user and all level group level will be ignored\n", 3 ); |
649 | 0 | append( sb, "Expression: ${assembly.useJvmChmod}", 3 ); |
650 | 0 | append( sb, "", 0 ); |
651 | |
|
652 | 0 | append( sb, "workDirectory (Default: ${project.build.directory}/assembly/work)", 2 ); |
653 | 0 | append( sb, "Directory to unpack JARs into if needed", 3 ); |
654 | 0 | append( sb, "Required: Yes", 3 ); |
655 | 0 | append( sb, "", 0 ); |
656 | |
} |
657 | |
} |
658 | |
|
659 | 0 | if ( goal == null || goal.length() <= 0 || "directory-single".equals( goal ) ) |
660 | |
{ |
661 | 0 | append( sb, "assembly:directory-single", 0 ); |
662 | 0 | append( sb, "Deprecated. Use assembly:single and an assembly with format == dir instead! This mojo is redundant.", 1 ); |
663 | 0 | if ( detail ) |
664 | |
{ |
665 | 0 | append( sb, "", 0 ); |
666 | 0 | append( sb, "Like the assembly:attached goal, assemble an application bundle or distribution from an assembly descriptor. This goal is suitable either for binding to the lifecycle or calling directly from the command line (provided all required files are available before the build starts, or are produced by another goal specified before this one on the command line).\nThis goal differs from assembly:single in that it ignores the <formats/> section of the assembly descriptor, and forces the assembly to be created as a directory in the project\'s build-output directory (usually ./target).", 1 ); |
667 | |
} |
668 | 0 | append( sb, "", 0 ); |
669 | 0 | if ( detail ) |
670 | |
{ |
671 | 0 | append( sb, "Available parameters:", 1 ); |
672 | 0 | append( sb, "", 0 ); |
673 | |
|
674 | 0 | append( sb, "appendAssemblyId (Default: true)", 2 ); |
675 | 0 | append( sb, "Set to false to exclude the assembly id from the assembly final name.", 3 ); |
676 | 0 | append( sb, "Expression: ${assembly.appendAssemblyId}", 3 ); |
677 | 0 | append( sb, "", 0 ); |
678 | |
|
679 | 0 | append( sb, "archive", 2 ); |
680 | 0 | append( sb, "This is a set of instructions to the archive builder, especially for building .jar files. It enables you to specify a Manifest file for the jar, in addition to other options.", 3 ); |
681 | 0 | append( sb, "", 0 ); |
682 | |
|
683 | 0 | append( sb, "archiveBaseDirectory", 2 ); |
684 | 0 | append( sb, "This is the base directory from which archive files are created. This base directory pre-pended to any <directory> specifications in the assembly descriptor. This is an optional parameter.", 3 ); |
685 | 0 | append( sb, "", 0 ); |
686 | |
|
687 | 0 | append( sb, "archiverConfig", 2 ); |
688 | 0 | append( sb, "Allows additional configuration options that are specific to a particular type of archive format. This is intended to capture an XML configuration that will be used to reflectively setup the options on the archiver instance.\nFor instance, to direct an assembly with the \'ear\' format to use a particular deployment descriptor, you should specify the following for the archiverConfig value in your plugin configuration:\n\n<appxml>${project.basedir}/somepath/app.xml</appxml>\n", 3 ); |
689 | 0 | append( sb, "", 0 ); |
690 | |
|
691 | 0 | append( sb, "attach (Default: true)", 2 ); |
692 | 0 | append( sb, "Controls whether the assembly plugin tries to attach the resulting assembly to the project.", 3 ); |
693 | 0 | append( sb, "Expression: ${assembly.attach}", 3 ); |
694 | 0 | append( sb, "", 0 ); |
695 | |
|
696 | 0 | append( sb, "classifier", 2 ); |
697 | 0 | append( sb, "Deprecated. Please use the Assembly\'s id for classifier instead", 3 ); |
698 | 0 | append( sb, "", 0 ); |
699 | 0 | append( sb, "This is the artifact classifier to be used for the resultant assembly artifact. Normally, you would use the assembly-id instead of specifying this here.", 3 ); |
700 | 0 | append( sb, "Expression: ${classifier}", 3 ); |
701 | 0 | append( sb, "", 0 ); |
702 | |
|
703 | 0 | append( sb, "descriptor", 2 ); |
704 | 0 | append( sb, "Deprecated. Please use descriptors instead", 3 ); |
705 | 0 | append( sb, "", 0 ); |
706 | 0 | append( sb, "Assembly XML Descriptor file. This must be the path to your customized descriptor file.", 3 ); |
707 | 0 | append( sb, "Expression: ${descriptor}", 3 ); |
708 | 0 | append( sb, "", 0 ); |
709 | |
|
710 | 0 | append( sb, "descriptorId", 2 ); |
711 | 0 | append( sb, "Deprecated. Please use descriptorRefs instead", 3 ); |
712 | 0 | append( sb, "", 0 ); |
713 | 0 | append( sb, "Predefined Assembly Descriptor Id\'s. You can select bin, jar-with-dependencies, or src.", 3 ); |
714 | 0 | append( sb, "Expression: ${descriptorId}", 3 ); |
715 | 0 | append( sb, "", 0 ); |
716 | |
|
717 | 0 | append( sb, "descriptorRefs", 2 ); |
718 | 0 | append( sb, "A list of references to assembly descriptors available on the plugin\'s classpath. The default classpath includes these built-in descriptors: bin, jar-with-dependencies, src, and project. You can add others by adding dependencies to the plugin.", 3 ); |
719 | 0 | append( sb, "", 0 ); |
720 | |
|
721 | 0 | append( sb, "descriptors", 2 ); |
722 | 0 | append( sb, "A list of descriptor files to generate from.", 3 ); |
723 | 0 | append( sb, "", 0 ); |
724 | |
|
725 | 0 | append( sb, "descriptorSourceDirectory", 2 ); |
726 | 0 | append( sb, "Directory to scan for descriptor files in. NOTE: This may not work correctly with assembly components.", 3 ); |
727 | 0 | append( sb, "", 0 ); |
728 | |
|
729 | 0 | append( sb, "dryRun (Default: false)", 2 ); |
730 | 0 | append( sb, "If this flag is set, everything up to the call to Archiver.createArchive() will be executed.", 3 ); |
731 | 0 | append( sb, "Expression: ${assembly.dryRun}", 3 ); |
732 | 0 | append( sb, "", 0 ); |
733 | |
|
734 | 0 | append( sb, "filters", 2 ); |
735 | 0 | append( sb, "(no description available)", 3 ); |
736 | 0 | append( sb, "", 0 ); |
737 | |
|
738 | 0 | append( sb, "finalName (Default: ${project.build.finalName})", 2 ); |
739 | 0 | append( sb, "The filename of the assembled distribution file.", 3 ); |
740 | 0 | append( sb, "Required: Yes", 3 ); |
741 | 0 | append( sb, "", 0 ); |
742 | |
|
743 | 0 | append( sb, "ignoreDirFormatExtensions (Default: true)", 2 ); |
744 | 0 | append( sb, "If this flag is set, the \'.dir\' suffix will be suppressed in the output directory name when using assembly/format == \'dir\' and other formats that begin with \'dir\'.\nNOTE: Since 2.2-beta-3, the default-value for this is true, NOT false as it used to be.", 3 ); |
745 | 0 | append( sb, "", 0 ); |
746 | |
|
747 | 0 | append( sb, "ignoreMissingDescriptor (Default: false)", 2 ); |
748 | 0 | append( sb, "Set to true in order to not fail when a descriptor is missing.", 3 ); |
749 | 0 | append( sb, "Expression: ${assembly.ignoreMissingDescriptor}", 3 ); |
750 | 0 | append( sb, "", 0 ); |
751 | |
|
752 | 0 | append( sb, "ignorePermissions (Default: false)", 2 ); |
753 | 0 | append( sb, "Set to true in order to avoid all chmod calls.\n\nNOTE: This will cause the assembly plugin to DISREGARD all fileMode/directoryMode settings in the assembly descriptor, and all file permissions in unpacked dependencies!\n", 3 ); |
754 | 0 | append( sb, "Expression: ${assembly.ignorePermissions}", 3 ); |
755 | 0 | append( sb, "", 0 ); |
756 | |
|
757 | 0 | append( sb, "includeSite (Default: false)", 2 ); |
758 | 0 | append( sb, "Deprecated. Please set this variable in the assembly descriptor instead", 3 ); |
759 | 0 | append( sb, "", 0 ); |
760 | 0 | append( sb, "Set to true to include the site generated by site:site goal.", 3 ); |
761 | 0 | append( sb, "Expression: ${includeSite}", 3 ); |
762 | 0 | append( sb, "", 0 ); |
763 | |
|
764 | 0 | append( sb, "outputDirectory (Default: ${project.build.directory})", 2 ); |
765 | 0 | append( sb, "The output directory of the assembled distribution file.", 3 ); |
766 | 0 | append( sb, "Required: Yes", 3 ); |
767 | 0 | append( sb, "", 0 ); |
768 | |
|
769 | 0 | append( sb, "runOnlyAtExecutionRoot (Default: false)", 2 ); |
770 | 0 | append( sb, "This will cause the assembly to run only at the top of a given module tree. That is, run in the project contained in the same folder where the mvn execution was launched.", 3 ); |
771 | 0 | append( sb, "Expression: ${assembly.runOnlyAtExecutionRoot}", 3 ); |
772 | 0 | append( sb, "", 0 ); |
773 | |
|
774 | 0 | append( sb, "skipAssembly (Default: false)", 2 ); |
775 | 0 | append( sb, "Flag allowing one or more executions of the assembly plugin to be configured as skipped for a particular build. This makes the assembly plugin more controllable from profiles.", 3 ); |
776 | 0 | append( sb, "Expression: ${assembly.skipAssembly}", 3 ); |
777 | 0 | append( sb, "", 0 ); |
778 | |
|
779 | 0 | append( sb, "tarLongFileMode (Default: warn)", 2 ); |
780 | 0 | append( sb, "Sets the TarArchiver behavior on file paths with more than 100 characters length. Valid values are: \'warn\' (default), \'fail\', \'truncate\', \'gnu\', or \'omit\'.", 3 ); |
781 | 0 | append( sb, "Expression: ${assembly.tarLongFileMode}", 3 ); |
782 | 0 | append( sb, "", 0 ); |
783 | |
|
784 | 0 | append( sb, "updateOnly (Default: false)", 2 ); |
785 | 0 | append( sb, "This will cause the assembly to only update an existing archive, if it exists.", 3 ); |
786 | 0 | append( sb, "Expression: ${assembly.updatOnly}", 3 ); |
787 | 0 | append( sb, "", 0 ); |
788 | |
|
789 | 0 | append( sb, "useJvmChmod (Default: false)", 2 ); |
790 | 0 | append( sb, "will use the jvm chmod, this is available for user and all level group level will be ignored\n", 3 ); |
791 | 0 | append( sb, "Expression: ${assembly.useJvmChmod}", 3 ); |
792 | 0 | append( sb, "", 0 ); |
793 | |
|
794 | 0 | append( sb, "workDirectory (Default: ${project.build.directory}/assembly/work)", 2 ); |
795 | 0 | append( sb, "Directory to unpack JARs into if needed", 3 ); |
796 | 0 | append( sb, "Required: Yes", 3 ); |
797 | 0 | append( sb, "", 0 ); |
798 | |
} |
799 | |
} |
800 | |
|
801 | 0 | if ( goal == null || goal.length() <= 0 || "help".equals( goal ) ) |
802 | |
{ |
803 | 0 | append( sb, "assembly:help", 0 ); |
804 | 0 | append( sb, "Display help information on maven-assembly-plugin.\nCall\n\u00a0\u00a0mvn\u00a0assembly:help\u00a0-Ddetail=true\u00a0-Dgoal=<goal-name>\nto display parameter details.", 1 ); |
805 | 0 | append( sb, "", 0 ); |
806 | 0 | if ( detail ) |
807 | |
{ |
808 | 0 | append( sb, "Available parameters:", 1 ); |
809 | 0 | append( sb, "", 0 ); |
810 | |
|
811 | 0 | append( sb, "detail (Default: false)", 2 ); |
812 | 0 | append( sb, "If true, display all settable properties for each goal.", 3 ); |
813 | 0 | append( sb, "Expression: ${detail}", 3 ); |
814 | 0 | append( sb, "", 0 ); |
815 | |
|
816 | 0 | append( sb, "goal", 2 ); |
817 | 0 | append( sb, "The name of the goal for which to show help. If unspecified, all goals will be displayed.", 3 ); |
818 | 0 | append( sb, "Expression: ${goal}", 3 ); |
819 | 0 | append( sb, "", 0 ); |
820 | |
|
821 | 0 | append( sb, "indentSize (Default: 2)", 2 ); |
822 | 0 | append( sb, "The number of spaces per indentation level, should be positive.", 3 ); |
823 | 0 | append( sb, "Expression: ${indentSize}", 3 ); |
824 | 0 | append( sb, "", 0 ); |
825 | |
|
826 | 0 | append( sb, "lineLength (Default: 80)", 2 ); |
827 | 0 | append( sb, "The maximum length of a display line, should be positive.", 3 ); |
828 | 0 | append( sb, "Expression: ${lineLength}", 3 ); |
829 | 0 | append( sb, "", 0 ); |
830 | |
} |
831 | |
} |
832 | |
|
833 | 0 | if ( goal == null || goal.length() <= 0 || "single".equals( goal ) ) |
834 | |
{ |
835 | 0 | append( sb, "assembly:single", 0 ); |
836 | 0 | append( sb, "Assemble an application bundle or distribution from an assembly descriptor. This goal is suitable either for binding to the lifecycle or calling directly from the command line (provided all required files are available before the build starts, or are produced by another goal specified before this one on the command line).", 1 ); |
837 | 0 | append( sb, "", 0 ); |
838 | 0 | if ( detail ) |
839 | |
{ |
840 | 0 | append( sb, "Available parameters:", 1 ); |
841 | 0 | append( sb, "", 0 ); |
842 | |
|
843 | 0 | append( sb, "appendAssemblyId (Default: true)", 2 ); |
844 | 0 | append( sb, "Set to false to exclude the assembly id from the assembly final name.", 3 ); |
845 | 0 | append( sb, "Expression: ${assembly.appendAssemblyId}", 3 ); |
846 | 0 | append( sb, "", 0 ); |
847 | |
|
848 | 0 | append( sb, "archive", 2 ); |
849 | 0 | append( sb, "This is a set of instructions to the archive builder, especially for building .jar files. It enables you to specify a Manifest file for the jar, in addition to other options.", 3 ); |
850 | 0 | append( sb, "", 0 ); |
851 | |
|
852 | 0 | append( sb, "archiveBaseDirectory", 2 ); |
853 | 0 | append( sb, "This is the base directory from which archive files are created. This base directory pre-pended to any <directory> specifications in the assembly descriptor. This is an optional parameter.", 3 ); |
854 | 0 | append( sb, "", 0 ); |
855 | |
|
856 | 0 | append( sb, "archiverConfig", 2 ); |
857 | 0 | append( sb, "Allows additional configuration options that are specific to a particular type of archive format. This is intended to capture an XML configuration that will be used to reflectively setup the options on the archiver instance.\nFor instance, to direct an assembly with the \'ear\' format to use a particular deployment descriptor, you should specify the following for the archiverConfig value in your plugin configuration:\n\n<appxml>${project.basedir}/somepath/app.xml</appxml>\n", 3 ); |
858 | 0 | append( sb, "", 0 ); |
859 | |
|
860 | 0 | append( sb, "attach (Default: true)", 2 ); |
861 | 0 | append( sb, "Controls whether the assembly plugin tries to attach the resulting assembly to the project.", 3 ); |
862 | 0 | append( sb, "Expression: ${assembly.attach}", 3 ); |
863 | 0 | append( sb, "", 0 ); |
864 | |
|
865 | 0 | append( sb, "classifier", 2 ); |
866 | 0 | append( sb, "Deprecated. Please use the Assembly\'s id for classifier instead", 3 ); |
867 | 0 | append( sb, "", 0 ); |
868 | 0 | append( sb, "This is the artifact classifier to be used for the resultant assembly artifact. Normally, you would use the assembly-id instead of specifying this here.", 3 ); |
869 | 0 | append( sb, "Expression: ${classifier}", 3 ); |
870 | 0 | append( sb, "", 0 ); |
871 | |
|
872 | 0 | append( sb, "descriptor", 2 ); |
873 | 0 | append( sb, "Deprecated. Please use descriptors instead", 3 ); |
874 | 0 | append( sb, "", 0 ); |
875 | 0 | append( sb, "Assembly XML Descriptor file. This must be the path to your customized descriptor file.", 3 ); |
876 | 0 | append( sb, "Expression: ${descriptor}", 3 ); |
877 | 0 | append( sb, "", 0 ); |
878 | |
|
879 | 0 | append( sb, "descriptorId", 2 ); |
880 | 0 | append( sb, "Deprecated. Please use descriptorRefs instead", 3 ); |
881 | 0 | append( sb, "", 0 ); |
882 | 0 | append( sb, "Predefined Assembly Descriptor Id\'s. You can select bin, jar-with-dependencies, or src.", 3 ); |
883 | 0 | append( sb, "Expression: ${descriptorId}", 3 ); |
884 | 0 | append( sb, "", 0 ); |
885 | |
|
886 | 0 | append( sb, "descriptorRefs", 2 ); |
887 | 0 | append( sb, "A list of references to assembly descriptors available on the plugin\'s classpath. The default classpath includes these built-in descriptors: bin, jar-with-dependencies, src, and project. You can add others by adding dependencies to the plugin.", 3 ); |
888 | 0 | append( sb, "", 0 ); |
889 | |
|
890 | 0 | append( sb, "descriptors", 2 ); |
891 | 0 | append( sb, "A list of descriptor files to generate from.", 3 ); |
892 | 0 | append( sb, "", 0 ); |
893 | |
|
894 | 0 | append( sb, "descriptorSourceDirectory", 2 ); |
895 | 0 | append( sb, "Directory to scan for descriptor files in. NOTE: This may not work correctly with assembly components.", 3 ); |
896 | 0 | append( sb, "", 0 ); |
897 | |
|
898 | 0 | append( sb, "dryRun (Default: false)", 2 ); |
899 | 0 | append( sb, "If this flag is set, everything up to the call to Archiver.createArchive() will be executed.", 3 ); |
900 | 0 | append( sb, "Expression: ${assembly.dryRun}", 3 ); |
901 | 0 | append( sb, "", 0 ); |
902 | |
|
903 | 0 | append( sb, "filters", 2 ); |
904 | 0 | append( sb, "(no description available)", 3 ); |
905 | 0 | append( sb, "", 0 ); |
906 | |
|
907 | 0 | append( sb, "finalName (Default: ${project.build.finalName})", 2 ); |
908 | 0 | append( sb, "The filename of the assembled distribution file.", 3 ); |
909 | 0 | append( sb, "Required: Yes", 3 ); |
910 | 0 | append( sb, "", 0 ); |
911 | |
|
912 | 0 | append( sb, "ignoreDirFormatExtensions (Default: true)", 2 ); |
913 | 0 | append( sb, "If this flag is set, the \'.dir\' suffix will be suppressed in the output directory name when using assembly/format == \'dir\' and other formats that begin with \'dir\'.\nNOTE: Since 2.2-beta-3, the default-value for this is true, NOT false as it used to be.", 3 ); |
914 | 0 | append( sb, "", 0 ); |
915 | |
|
916 | 0 | append( sb, "ignoreMissingDescriptor (Default: false)", 2 ); |
917 | 0 | append( sb, "Set to true in order to not fail when a descriptor is missing.", 3 ); |
918 | 0 | append( sb, "Expression: ${assembly.ignoreMissingDescriptor}", 3 ); |
919 | 0 | append( sb, "", 0 ); |
920 | |
|
921 | 0 | append( sb, "ignorePermissions (Default: false)", 2 ); |
922 | 0 | append( sb, "Set to true in order to avoid all chmod calls.\n\nNOTE: This will cause the assembly plugin to DISREGARD all fileMode/directoryMode settings in the assembly descriptor, and all file permissions in unpacked dependencies!\n", 3 ); |
923 | 0 | append( sb, "Expression: ${assembly.ignorePermissions}", 3 ); |
924 | 0 | append( sb, "", 0 ); |
925 | |
|
926 | 0 | append( sb, "includeSite (Default: false)", 2 ); |
927 | 0 | append( sb, "Deprecated. Please set this variable in the assembly descriptor instead", 3 ); |
928 | 0 | append( sb, "", 0 ); |
929 | 0 | append( sb, "Set to true to include the site generated by site:site goal.", 3 ); |
930 | 0 | append( sb, "Expression: ${includeSite}", 3 ); |
931 | 0 | append( sb, "", 0 ); |
932 | |
|
933 | 0 | append( sb, "outputDirectory (Default: ${project.build.directory})", 2 ); |
934 | 0 | append( sb, "The output directory of the assembled distribution file.", 3 ); |
935 | 0 | append( sb, "Required: Yes", 3 ); |
936 | 0 | append( sb, "", 0 ); |
937 | |
|
938 | 0 | append( sb, "runOnlyAtExecutionRoot (Default: false)", 2 ); |
939 | 0 | append( sb, "This will cause the assembly to run only at the top of a given module tree. That is, run in the project contained in the same folder where the mvn execution was launched.", 3 ); |
940 | 0 | append( sb, "Expression: ${assembly.runOnlyAtExecutionRoot}", 3 ); |
941 | 0 | append( sb, "", 0 ); |
942 | |
|
943 | 0 | append( sb, "skipAssembly (Default: false)", 2 ); |
944 | 0 | append( sb, "Flag allowing one or more executions of the assembly plugin to be configured as skipped for a particular build. This makes the assembly plugin more controllable from profiles.", 3 ); |
945 | 0 | append( sb, "Expression: ${assembly.skipAssembly}", 3 ); |
946 | 0 | append( sb, "", 0 ); |
947 | |
|
948 | 0 | append( sb, "tarLongFileMode (Default: warn)", 2 ); |
949 | 0 | append( sb, "Sets the TarArchiver behavior on file paths with more than 100 characters length. Valid values are: \'warn\' (default), \'fail\', \'truncate\', \'gnu\', or \'omit\'.", 3 ); |
950 | 0 | append( sb, "Expression: ${assembly.tarLongFileMode}", 3 ); |
951 | 0 | append( sb, "", 0 ); |
952 | |
|
953 | 0 | append( sb, "updateOnly (Default: false)", 2 ); |
954 | 0 | append( sb, "This will cause the assembly to only update an existing archive, if it exists.", 3 ); |
955 | 0 | append( sb, "Expression: ${assembly.updatOnly}", 3 ); |
956 | 0 | append( sb, "", 0 ); |
957 | |
|
958 | 0 | append( sb, "useJvmChmod (Default: false)", 2 ); |
959 | 0 | append( sb, "will use the jvm chmod, this is available for user and all level group level will be ignored\n", 3 ); |
960 | 0 | append( sb, "Expression: ${assembly.useJvmChmod}", 3 ); |
961 | 0 | append( sb, "", 0 ); |
962 | |
|
963 | 0 | append( sb, "workDirectory (Default: ${project.build.directory}/assembly/work)", 2 ); |
964 | 0 | append( sb, "Directory to unpack JARs into if needed", 3 ); |
965 | 0 | append( sb, "Required: Yes", 3 ); |
966 | 0 | append( sb, "", 0 ); |
967 | |
} |
968 | |
} |
969 | |
|
970 | 0 | if ( goal == null || goal.length() <= 0 || "unpack".equals( goal ) ) |
971 | |
{ |
972 | 0 | append( sb, "assembly:unpack", 0 ); |
973 | 0 | append( sb, "Deprecated. Use org.apache.maven.plugins:maven-dependency-plugin goal: unpack or unpack-dependencies instead.", 1 ); |
974 | 0 | if ( detail ) |
975 | |
{ |
976 | 0 | append( sb, "", 0 ); |
977 | 0 | append( sb, "Unpack project dependencies. Currently supports dependencies of type jar and zip.", 1 ); |
978 | |
} |
979 | 0 | append( sb, "", 0 ); |
980 | 0 | if ( detail ) |
981 | |
{ |
982 | 0 | append( sb, "Available parameters:", 1 ); |
983 | 0 | append( sb, "", 0 ); |
984 | |
|
985 | 0 | append( sb, "workDirectory", 2 ); |
986 | 0 | append( sb, "Directory to unpack JARs into if needed", 3 ); |
987 | 0 | append( sb, "Required: Yes", 3 ); |
988 | 0 | append( sb, "Expression: ${project.build.directory}/assembly/work", 3 ); |
989 | 0 | append( sb, "", 0 ); |
990 | |
} |
991 | |
} |
992 | |
|
993 | 0 | if ( getLog().isInfoEnabled() ) |
994 | |
{ |
995 | 0 | getLog().info( sb.toString() ); |
996 | |
} |
997 | 0 | } |
998 | |
|
999 | |
|
1000 | |
|
1001 | |
|
1002 | |
|
1003 | |
|
1004 | |
|
1005 | |
|
1006 | |
|
1007 | |
|
1008 | |
private static String repeat( String str, int repeat ) |
1009 | |
{ |
1010 | 0 | StringBuffer buffer = new StringBuffer( repeat * str.length() ); |
1011 | |
|
1012 | 0 | for ( int i = 0; i < repeat; i++ ) |
1013 | |
{ |
1014 | 0 | buffer.append( str ); |
1015 | |
} |
1016 | |
|
1017 | 0 | return buffer.toString(); |
1018 | |
} |
1019 | |
|
1020 | |
|
1021 | |
|
1022 | |
|
1023 | |
|
1024 | |
|
1025 | |
|
1026 | |
|
1027 | |
|
1028 | |
private void append( StringBuffer sb, String description, int indent ) |
1029 | |
{ |
1030 | 0 | for ( Iterator it = toLines( description, indent, indentSize, lineLength ).iterator(); it.hasNext(); ) |
1031 | |
{ |
1032 | 0 | sb.append( it.next().toString() ).append( '\n' ); |
1033 | |
} |
1034 | 0 | } |
1035 | |
|
1036 | |
|
1037 | |
|
1038 | |
|
1039 | |
|
1040 | |
|
1041 | |
|
1042 | |
|
1043 | |
|
1044 | |
|
1045 | |
|
1046 | |
private static List toLines( String text, int indent, int indentSize, int lineLength ) |
1047 | |
{ |
1048 | 0 | List lines = new ArrayList(); |
1049 | |
|
1050 | 0 | String ind = repeat( "\t", indent ); |
1051 | 0 | String[] plainLines = text.split( "(\r\n)|(\r)|(\n)" ); |
1052 | 0 | for ( int i = 0; i < plainLines.length; i++ ) |
1053 | |
{ |
1054 | 0 | toLines( lines, ind + plainLines[i], indentSize, lineLength ); |
1055 | |
} |
1056 | |
|
1057 | 0 | return lines; |
1058 | |
} |
1059 | |
|
1060 | |
|
1061 | |
|
1062 | |
|
1063 | |
|
1064 | |
|
1065 | |
|
1066 | |
|
1067 | |
|
1068 | |
private static void toLines( List lines, String line, int indentSize, int lineLength ) |
1069 | |
{ |
1070 | 0 | int lineIndent = getIndentLevel( line ); |
1071 | 0 | StringBuffer buf = new StringBuffer( 256 ); |
1072 | 0 | String[] tokens = line.split( " +" ); |
1073 | 0 | for ( int i = 0; i < tokens.length; i++ ) |
1074 | |
{ |
1075 | 0 | String token = tokens[i]; |
1076 | 0 | if ( i > 0 ) |
1077 | |
{ |
1078 | 0 | if ( buf.length() + token.length() >= lineLength ) |
1079 | |
{ |
1080 | 0 | lines.add( buf.toString() ); |
1081 | 0 | buf.setLength( 0 ); |
1082 | 0 | buf.append( repeat( " ", lineIndent * indentSize ) ); |
1083 | |
} |
1084 | |
else |
1085 | |
{ |
1086 | 0 | buf.append( ' ' ); |
1087 | |
} |
1088 | |
} |
1089 | 0 | for ( int j = 0; j < token.length(); j++ ) |
1090 | |
{ |
1091 | 0 | char c = token.charAt( j ); |
1092 | 0 | if ( c == '\t' ) |
1093 | |
{ |
1094 | 0 | buf.append( repeat( " ", indentSize - buf.length() % indentSize ) ); |
1095 | |
} |
1096 | 0 | else if ( c == '\u00A0' ) |
1097 | |
{ |
1098 | 0 | buf.append( ' ' ); |
1099 | |
} |
1100 | |
else |
1101 | |
{ |
1102 | 0 | buf.append( c ); |
1103 | |
} |
1104 | |
} |
1105 | |
} |
1106 | 0 | lines.add( buf.toString() ); |
1107 | 0 | } |
1108 | |
|
1109 | |
|
1110 | |
|
1111 | |
|
1112 | |
|
1113 | |
|
1114 | |
|
1115 | |
private static int getIndentLevel( String line ) |
1116 | |
{ |
1117 | 0 | int level = 0; |
1118 | 0 | for ( int i = 0; i < line.length() && line.charAt( i ) == '\t'; i++ ) |
1119 | |
{ |
1120 | 0 | level++; |
1121 | |
} |
1122 | 0 | for ( int i = level + 1; i <= level + 4 && i < line.length(); i++ ) |
1123 | |
{ |
1124 | 0 | if ( line.charAt( i ) == '\t' ) |
1125 | |
{ |
1126 | 0 | level++; |
1127 | 0 | break; |
1128 | |
} |
1129 | |
} |
1130 | 0 | return level; |
1131 | |
} |
1132 | |
} |