diff options
author | Bjørn Christian Seime <bjorncs@yahoo-inc.com> | 2017-06-19 19:51:38 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@yahoo-inc.com> | 2017-06-21 15:05:20 +0200 |
commit | 35b82618a21671767ea2b88dfdb961c5a3165d16 (patch) | |
tree | c6f83caa7be13363be0e00ef1e7e7e2f7574448b /bundle-plugin/src/main | |
parent | a69299eb06d514e77394248d5dbdcfc52a3f09d6 (diff) |
Update dependencies for bundle-plugin
Diffstat (limited to 'bundle-plugin/src/main')
-rw-r--r-- | bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/AssembleContainerPluginMojo.scala | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/AssembleContainerPluginMojo.scala b/bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/AssembleContainerPluginMojo.scala index 15c2a2ed35a..795a0eaf86e 100644 --- a/bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/AssembleContainerPluginMojo.scala +++ b/bundle-plugin/src/main/scala/com/yahoo/container/plugin/mojo/AssembleContainerPluginMojo.scala @@ -8,10 +8,10 @@ import java.util.zip.ZipEntry import com.yahoo.container.plugin.util.{Files, JarFiles} import org.apache.maven.archiver.{MavenArchiveConfiguration, MavenArchiver} +import org.apache.maven.execution.MavenSession import org.apache.maven.plugin.AbstractMojo -import org.apache.maven.plugins.annotations.{Component, Mojo, Parameter, ResolutionScope} +import org.apache.maven.plugins.annotations.{Mojo, Parameter, ResolutionScope} import org.apache.maven.project.MavenProject -import org.codehaus.plexus.archiver.Archiver import org.codehaus.plexus.archiver.jar.JarArchiver import scala.collection.convert.wrapAsScala._ @@ -27,8 +27,8 @@ class AssembleContainerPluginMojo extends AbstractMojo { @Parameter(defaultValue = "${project}") var project: MavenProject = null - @Component(role = classOf[Archiver], hint = "jar") - var jarArchiver: JarArchiver = null + @Parameter(defaultValue = "${session}", readonly = true, required = true) + var session: MavenSession = null @Parameter var archiveConfiguration: MavenArchiveConfiguration = new MavenArchiveConfiguration @@ -48,55 +48,58 @@ class AssembleContainerPluginMojo extends AbstractMojo { archiveConfiguration.setForced(true) archiveConfiguration.setManifestFile(new File(new File(project.getBuild.getOutputDirectory), JarFile.MANIFEST_NAME)) - addClassesDirectory() - createArchive(jarFiles(withoutDependencies)) + val jarWithoutDependencies = new JarArchiver() + addClassesDirectory(jarWithoutDependencies) + createArchive(jarFiles(withoutDependencies), jarWithoutDependencies) project.getArtifact.setFile(jarFiles(withoutDependencies)) - addDependencies() - createArchive(jarFiles(withDependencies)) + val jarWithDependencies = new JarArchiver() + addClassesDirectory(jarWithDependencies) + addDependencies(jarWithDependencies) + createArchive(jarFiles(withDependencies), jarWithDependencies) } private def jarFileInBuildDirectory(name: String)(jarSuffix: String) = { new File(build.getDirectory, name + jarSuffix) } - private def addClassesDirectory() { + private def addClassesDirectory(jarArchiver: JarArchiver) { val classesDirectory = new File(build.getOutputDirectory) if (classesDirectory.isDirectory) { jarArchiver.addDirectory(classesDirectory) } } - private def createArchive(jarFile: File) { + private def createArchive(jarFile: File, jarArchiver: JarArchiver) { val mavenArchiver = new MavenArchiver mavenArchiver.setArchiver(jarArchiver) mavenArchiver.setOutputFile(jarFile) - mavenArchiver.createArchive(project, archiveConfiguration) + mavenArchiver.createArchive(session, project, archiveConfiguration) } - private def addDependencies() { + private def addDependencies(jarArchiver: JarArchiver) { Artifacts.getArtifactsToInclude(project).foreach { artifact => if (artifact.getType == "jar") { jarArchiver.addFile(artifact.getFile, "dependencies/" + artifact.getFile.getName) - copyConfigDefinitions(artifact.getFile) + copyConfigDefinitions(artifact.getFile, jarArchiver) } else getLog.warn("Unkown artifact type " + artifact.getType) } } - private def copyConfigDefinitions(file: File) { + private def copyConfigDefinitions(file: File, jarArchiver: JarArchiver) { JarFiles.withJarFile(file) { jarFile => for { entry <- jarFile.entries() name = entry.getName if name.startsWith("configdefinitions/") && name.endsWith(".def") - } copyConfigDefinition(jarFile, entry) + } copyConfigDefinition(jarFile, entry, jarArchiver) } } - private def copyConfigDefinition(jarFile: JarFile, entry: ZipEntry) { + private def copyConfigDefinition(jarFile: JarFile, entry: ZipEntry, jarArchiver: JarArchiver) { JarFiles.withInputStream(jarFile, entry) { input => val defPath = entry.getName.replace("/", File.separator) val destinationFile = new File(project.getBuild.getOutputDirectory, defPath) |