我使用IzPack-maven-plugin和它自己的“izpack-jar”打包类型来创建安装程序工件。该插件在本地创建此工件作为.jar
文件,但将其部署为类型izpack-jar
。因此,当从nexus获取该工件时,它将获得.izpack-jar
扩展。
在插件的code中包含以下行:
project.getArtifact().setFile(jarFile);
[...]
file = new File(outputDirectory, finalName + localClassifier + ".jar");
第二个文件显式创建文件为.jar
文件,第一个文件只是将此文件设置为主要工件。
通常是否可以使用一种打包类型构建工件,但是使用其他类型进行部署?
答案 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
绑定到您的生命周期来部署其他类型,但我不建议使用它