1

我正在构建具有以下结构的应用程序(myApp根在哪里):

myApp\bin\myApp.jar  
myApp\runMyApp.bat

所以我需要在两个目录中“包装”输出 jar,并在外部目录 myApp 中添加一个脚本文件。

我如何最好地设置 POM 来做到这一点?

奖励问题:我喜欢用 bat 制作 exe 的想法。目前我为此使用了一个工具。Maven可以实现这样的事情吗?拥有exe比bat文件更好吗?(我这样做主要是为了插入自定义图标)。

4

2 回答 2

1

我已经使用程序集插件来创建自定义输出目录,并且发现它非常强大。您可以指定输出文件夹的存档格式,如 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

于 2013-09-10T16:34:26.637 回答
1

首先,AppAssembler插件可用于.bat为您的.jar. 它可能不支持您所追求的确切布局,但它应该是可定制的以获得相当接近的东西。

其次,程序集插件可以将所有这些内容汇总并生成一个.zip具有您想要的布局并包含您所追求的所有文件的文件。

其他要研究的是NSIS,它可以为您的应用程序创建一个.exeWindows 安装程序。

诸如launch4j 之类的工具可以帮助将您的整个应用程序包装起来,.exe尽管我个人无法为它找到一个不错的maven way插件。

于 2013-09-10T14:01:38.203 回答