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