1 package org.apache.maven.plugin.javadoc;
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.MojoExecutionException;
23 import org.apache.maven.plugin.MojoFailureException;
24 import org.apache.maven.plugin.javadoc.options.JavadocOptions;
25 import org.apache.maven.project.MavenProjectHelper;
26 import org.codehaus.plexus.archiver.Archiver;
27 import org.codehaus.plexus.archiver.ArchiverException;
28 import org.codehaus.plexus.archiver.manager.ArchiverManager;
29 import org.codehaus.plexus.archiver.manager.NoSuchArchiverException;
30
31 import java.io.File;
32 import java.io.IOException;
33
34
35
36
37
38
39
40
41
42
43
44 public class ResourcesBundleMojo
45 extends AbstractJavadocMojo
46 {
47
48 public static final String BUNDLE_OPTIONS_PATH = "META-INF/maven/javadoc-options.xml";
49
50 public static final String RESOURCES_DIR_PATH = "resources";
51
52
53
54
55
56
57
58
59
60 private String finalName;
61
62
63
64
65
66
67
68 private MavenProjectHelper projectHelper;
69
70
71
72
73
74
75 private ArchiverManager archiverManager;
76
77
78
79
80
81
82
83
84
85
86
87 public void execute()
88 throws MojoExecutionException, MojoFailureException
89 {
90 try
91 {
92 buildJavadocOptions();
93 }
94 catch ( IOException e )
95 {
96 throw new MojoExecutionException( "Failed to generate javadoc-options file: " + e.getMessage(), e );
97 }
98
99 Archiver archiver;
100 try
101 {
102 archiver = archiverManager.getArchiver( "jar" );
103 }
104 catch ( NoSuchArchiverException e )
105 {
106 throw new MojoExecutionException( "Failed to retrieve jar archiver component from manager.", e );
107 }
108
109 File optionsFile = getJavadocOptionsFile();
110 File bundleFile =
111 new File( getProject().getBuild().getDirectory(), finalName + "-" + getAttachmentClassifier() + ".jar" );
112 try
113 {
114 archiver.addFile( optionsFile, BUNDLE_OPTIONS_PATH );
115
116 File javadocDir = getJavadocDirectory();
117 if ( javadocDir.exists() && javadocDir.isDirectory() )
118 {
119 archiver.addDirectory( javadocDir, RESOURCES_DIR_PATH );
120 }
121
122 archiver.setDestFile( bundleFile );
123 archiver.createArchive();
124 }
125 catch ( ArchiverException e )
126 {
127 throw new MojoExecutionException( "Failed to assemble javadoc-resources bundle archive. Reason: "
128 + e.getMessage(), e );
129 }
130 catch ( IOException e )
131 {
132 throw new MojoExecutionException( "Failed to assemble javadoc-resources bundle archive. Reason: "
133 + e.getMessage(), e );
134 }
135
136 projectHelper.attachArtifact( getProject(), bundleFile, getAttachmentClassifier() );
137 }
138 }