为maven部署指定显式类型

时间:2014-03-18 16:47:43

标签: java maven deployment nexus izpack

我使用IzPack-maven-plugin和它自己的“izpack-jar”打包类型来创建安装程序工件。该插件在本地创建此工件作为.jar文件,但将其部署为类型izpack-jar。因此,当从nexus获取该工件时,它将获得.izpack-jar扩展。

在插件的code中包含以下行:

project.getArtifact().setFile(jarFile);
[...]
file = new File(outputDirectory, finalName + localClassifier + ".jar");

第二个文件显式创建文件为.jar文件,第一个文件只是将此文件设置为主要工件。

通常是否可以使用一种打包类型构建工件,但是使用其他类型进行部署?

1 个答案:

答案 0 :(得分:0)

实际上,类型izpack-jar的扩展名被定义为jar,因此它应该被部署为jar文件(而包装类型仍然是izpack.jar)。

更新

请参阅sourcecode(https://github.com/izpack/izpack/blob/master/izpack-maven-plugin/src/main/resources/META-INF/plexus/components.xml):

<component>
  <role>org.apache.maven.artifact.handler.ArtifactHandler</role>
  <role-hint>izpack</role-hint>
  <implementation>org.apache.maven.artifact.handler.DefaultArtifactHandler</implementation>
  <configuration>
    <type>izpack</type>
    <includesDependencies>false</includesDependencies>
    <language>java</language>
    <extension>jar</extension>
    <addedToClasspath>true</addedToClasspath>
    <packaging>izpack-jar</packaging>
  </configuration>
</component>

打包和扩展可能不同(例如,在捆绑或maven插件的情况下)。

您可以通过显式屏蔽default-deploy执行(将其绑定到不存在的生命周期阶段)并将deploy:deploy-file绑定到您的生命周期来部署其他类型,但我不建议使用它