1 package org.apache.maven.plugin.war.util;
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.archiver.MavenArchiveConfiguration;
23 import org.apache.maven.archiver.MavenArchiver;
24 import org.apache.maven.artifact.DependencyResolutionRequiredException;
25 import org.apache.maven.plugin.MojoExecutionException;
26 import org.apache.maven.plugin.war.packaging.AbstractWarPackagingTask;
27 import org.apache.maven.project.MavenProject;
28 import org.codehaus.plexus.archiver.ArchiverException;
29 import org.codehaus.plexus.archiver.jar.JarArchiver;
30 import org.codehaus.plexus.archiver.jar.ManifestException;
31
32 import java.io.File;
33 import java.io.IOException;
34
35
36
37
38
39
40
41 public class ClassesPackager
42 {
43
44
45
46
47 public ClassesPackager()
48 {
49 super();
50 }
51
52
53
54
55
56
57
58
59
60
61
62 public void packageClasses( File classesDirectory, File targetFile, JarArchiver jarArchiver, MavenProject project,
63 MavenArchiveConfiguration archiveConfiguration )
64 throws MojoExecutionException
65 {
66
67 try
68 {
69 final MavenArchiver archiver = new MavenArchiver();
70 archiver.setArchiver( jarArchiver );
71 archiver.setOutputFile( targetFile );
72 archiver.getArchiver().addDirectory( classesDirectory );
73 archiver.createArchive( project, archiveConfiguration );
74 }
75 catch ( ArchiverException e )
76 {
77 throw new MojoExecutionException( "Could not create classes archive", e );
78 }
79 catch ( ManifestException e )
80 {
81 throw new MojoExecutionException( "Could not create classes archive", e );
82 }
83 catch ( IOException e )
84 {
85 throw new MojoExecutionException( "Could not create classes archive", e );
86 }
87 catch ( DependencyResolutionRequiredException e )
88 {
89 throw new MojoExecutionException( "Could not create classes archive", e );
90 }
91 }
92
93
94
95
96
97
98
99 public File getClassesDirectory( File webappDirectory )
100 {
101 return new File( webappDirectory, AbstractWarPackagingTask.CLASSES_PATH );
102 }
103 }