1 package org.apache.maven.plugin.coreit;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.plugin.AbstractMojo;
23 import org.apache.maven.plugin.MojoExecutionException;
24 import org.apache.maven.project.MavenProject;
25 import org.apache.maven.project.MavenProjectBuilder;
26
27 import java.io.File;
28 import java.io.FileOutputStream;
29 import java.io.IOException;
30 import java.util.Properties;
31
32
33
34
35 public abstract class AbstractPomMojo
36 extends AbstractMojo
37 {
38
39
40
41
42
43
44 protected MavenProjectBuilder builder;
45
46 protected void dump( Properties props, String key, MavenProject project )
47 {
48 put( props, key + "project.id", project.getId() );
49 put( props, key + "project.name", project.getName() );
50 put( props, key + "project.description", project.getDescription() );
51 if ( project.getArtifact() != null )
52 {
53 put( props, key + "artifact.id", project.getArtifact().getId() );
54 }
55 }
56
57 protected void put( Properties props, String key, Object value )
58 {
59 if ( value != null )
60 {
61 props.setProperty( key, value.toString() );
62 }
63 }
64
65 protected void store( Properties props, File file )
66 throws MojoExecutionException
67 {
68 try
69 {
70 file.getParentFile().mkdirs();
71
72 try ( FileOutputStream os = new FileOutputStream( file ) )
73 {
74 props.store( os, "[MAVEN-CORE-IT-LOG]" );
75 }
76 }
77 catch ( IOException e )
78 {
79 throw new MojoExecutionException( "Failed to dump POMs: " + e.getMessage(), e );
80 }
81 }
82
83 }