我正在将IzPack-maven-plugin及其自身的“ izpack-jar”包装类型用于创建安装程序工件。该插件在本地将其创建为.jar文件,但将其部署为izpack-jar类型。因此,从链接获取工件时,它将获得.izpack-jar扩展名。

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

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


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

通常可以用一种包装类型构建工件,而用另一种包装类型部署工件吗?

最佳答案

实际上,类型izpack-jar的扩展名定义为jar,因此应将其部署为jar文件(而打包类型仍为izpack.jar)。

更新:

请参阅源代码(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绑定到生命周期,可以使用其他类型的部署,但是我不建议这样做。

关于java - 为Maven部署指定显式类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22485790/

10-12 19:54