我正在构建具有以下结构的应用程序(myApp
根在哪里):
myApp\bin\myApp.jar
myApp\runMyApp.bat
所以我需要在两个目录中“包装”输出 jar,并在外部目录 myApp 中添加一个脚本文件。
我如何最好地设置 POM 来做到这一点?
奖励问题:我喜欢用 bat 制作 exe 的想法。目前我为此使用了一个工具。Maven可以实现这样的事情吗?拥有exe比bat文件更好吗?(我这样做主要是为了插入自定义图标)。
我已经使用程序集插件来创建自定义输出目录,并且发现它非常强大。您可以指定输出文件夹的存档格式,如 zip 等,以及需要包含在 zip 中的文件的相对路径。通过将以下内容添加到您的自定义程序集 xml 文件中来包含项目的依赖项 - 这将添加 pom.xml 中指定的所有依赖 jar
<dependencySets>
<dependencySet>
<outputDirectory>/</outputDirectory>
<useProjectArtifact>true</useProjectArtifact>
<unpack>false</unpack>
<scope>compile</scope>
<useTransitiveDependencies>false</useTransitiveDependencies>
</dependencySet>
</dependencySets>
这是创建自定义程序集描述符的链接 - http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html
首先,AppAssembler插件可用于.bat
为您的.jar
. 它可能不支持您所追求的确切布局,但它应该是可定制的以获得相当接近的东西。
其次,程序集插件可以将所有这些内容汇总并生成一个.zip
具有您想要的布局并包含您所追求的所有文件的文件。
其他要研究的是NSIS,它可以为您的应用程序创建一个.exe
Windows 安装程序。
诸如launch4j 之类的工具可以帮助将您的整个应用程序包装起来,.exe
尽管我个人无法为它找到一个不错的maven way插件。