Maven的Launch4J端口记录很严重,我没有按照我想要的方式使用它。
是否有一些好的Maven插件可以按照以下标准生成exe文件(如果可能的话,至少包含其中一些):
答案 0 :(得分:1)
你可以使用插件
<plugin>
<groupId>com.akathist.maven.plugins.launch4j</groupId>
<artifactId>launch4j-maven-plugin</artifactId>
<version>1.5.2</version>
</plugin>
用于将jar文件包装在exe。
中事先你可以把所有东西都包在一个罐子里,如aberes的答案所述。
因此,例如,配置可能如下所示:
<plugin>
<groupId>com.akathist.maven.plugins.launch4j</groupId>
<artifactId>launch4j-maven-plugin</artifactId>
<executions>
<execution>
<id>l4j-clui</id>
<phase>install</phase>
<goals>
<goal>launch4j</goal>
</goals>
<configuration>
<!--
<headerType>gui</headerType> -->
<headerType>console</headerType>
<jar>target/yourFinalJar.jar</jar>
<outfile>target/${project.build.finalName}.exe</outfile>
<errTitle>${project.name}</errTitle>
<icon>your/Icon.ico</icon>
<jre>
<path>jre</path> <!-- if you bundle the jre -->
</jre>
<versionInfo>
<fileVersion>1.2.3.4</fileVersion>
<txtFileVersion>${project.version}</txtFileVersion>
<fileDescription>${project.description}</fileDescription>
<copyright>(c) ${project.inceptionYear} MyCompany</copyright>
<productVersion>1.0.0.0</productVersion>
<txtProductVersion>${project.version}</txtProductVersion>
<productName>${project.name}</productName>
<companyName>MyCompany</companyName>
<internalName>${project.name}</internalName>
<originalFilename>${project.build.finalName}.exe</originalFilename>
</versionInfo>
</configuration>
</execution>
</executions>
</plugin>
答案 1 :(得分:-1)
您可以使用maven-assembly-plugin,其中两个执行指定主类并将所有依赖项打包在一个jar中,因此您不需要任何类路径。第二次执行会将所有配置文件放在同一个jar中。 所以最后你没有一个exe文件,你有一个带有清单文件的jar文件。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-5</version>
<executions>
<execution>
<id>make-assembly1</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<archive>
<manifest>
<mainClass>com....class.with.the.main</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
<execution>
<id>make-assembly2</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>distribution.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>