[英]Trying to integrate Launch4j in a Maven project using Alakai plugin
I am trying to integrate the generation of an installer as part of a maven compilation process. 我正在尝试将安装程序的生成集成为maven编译过程的一部分。
I have found Alakai's plugin for Launch4j . 我找到了Alakai的Launch4j 插件 。 I have create a simple Hello World application using Maven.
我使用Maven创建了一个简单的Hello World应用程序。 I have tried to use configuration examples provided by Alakai, but when I compile my project, I get:
我试图使用Alakai提供的配置示例,但是当我编译项目时,我得到:
Failed to execute goal org.bluestemsoftware.open.maven.plugin:launch4j-plugin:1.5.0.0:launch4j (launch4j) on project Launch4j: Failed to build the executable;
无法在项目Launch4j上执行目标org.bluestemsoftware.open.maven.plugin:launch4j-plugin:1.5.0.0:launch4j(launch4j):无法构建可执行文件; please verify your configuration.
请验证您的配置。 Application jar doesnt exist.
应用jar不存在。 -> [Help 1]
- > [帮助1]
Unfortunately, Alakai's documentation is limited and I could not find much with Googling. 不幸的是,Alakai的文档是有限的,我用谷歌搜索找不到多少。
Thanks. 谢谢。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached> <!-- Make the shaded artifact not the main one -->
<shadedClassifierName>shaded</shadedClassifierName> <!-- set the suffix to the shaded jar -->
</configuration>
</plugin>
<plugin>
<groupId>org.bluestemsoftware.open.maven.plugin</groupId>
<artifactId>launch4j-plugin</artifactId>
<version>1.5.0.0</version>
<executions>
<!-- GUI exe -->
<execution>
<id>l4j-gui</id>
<phase>package</phase>
<goals>
<goal>launch4j</goal>
</goals>
<configuration>
<headerType>gui</headerType>
<outfile>target/app-gui.exe</outfile>
<jar>target/${artifactId}-${version}-shaded.jar</jar> <!-- 'shaded' is the value set on shadedClassifierName above -->
<errTitle>App Err</errTitle>
<classPath>
<mainClass>package.AppGUI</mainClass>
</classPath>
<icon>src/main/resources/icons/exeIcon.ico</icon>
<jre>
<minVersion>1.5.0</minVersion>
<maxVersion>1.6.0</maxVersion>
<initialHeapSize>128</initialHeapSize>
<maxHeapSize>1024</maxHeapSize>
</jre>
<versionInfo>
<fileVersion>1.0.0.0</fileVersion>
<txtFileVersion>1.0.0.0</txtFileVersion>
<fileDescription>Desc</fileDescription>
<copyright>C</copyright>
<productVersion>1.0.0.0</productVersion>
<txtProductVersion>1.0.0.0</txtProductVersion>
<productName>Product</productName>
<internalName>Product</internalName>
<originalFilename>App.exe</originalFilename>
</versionInfo>
</configuration>
</execution>
<!-- Command-line exe -->
<execution>
<id>l4j-cli</id>
<phase>package</phase>
<goals>
<goal>launch4j</goal>
</goals>
<configuration>
<headerType>console</headerType>
<outfile>target/app-cli.exe</outfile>
<jar>target/${artifactId}-${version}-shaded.jar</jar> <!-- 'shaded' is the value set on shadedClassifierName above -->
<errTitle>App Err</errTitle>
<classPath>
<mainClass>package.AppCLI</mainClass>
</classPath>
<icon>src/main/resources/icons/exeIcon.ico</icon>
<jre>
<minVersion>1.5.0</minVersion>
<maxVersion>1.6.0</maxVersion>
<initialHeapSize>128</initialHeapSize>
<maxHeapSize>1024</maxHeapSize>
</jre>
</configuration>
</execution>
</executions>
</plugin>
Alternatively, You can omit the 'jar' tag on launch4j-plugin and remove the extra configs of the shade-plugin, but be aware that this will replace the main jar of the flow (without embedded dependencies) by the shaded jar (with embedded dependencies), and this one will be installed on your local repo, or used in the reactor if needed. 或者,您可以省略launch4j-plugin上的'jar'标签并删除shade-plugin的额外配置,但请注意,这将替换阴影jar(具有嵌入式jar)的流的主要jar(没有嵌入式依赖项)依赖项),这个将安装在您的本地仓库,或者如果需要在反应堆中使用。
有关如何为shade插件定义主类的信息,请参阅http://maven.apache.org/plugins/maven-shade-plugin/examples/executable-jar.html 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.