我浏览了该网站的所有常见帖子,但我的问题略有不同:
打包具有许多其他jar文件作为依赖关系的简单Java应用程序的最佳实践是什么?
例如:我有foo.java,其中有一个main,以及从foo.java访问的foo1.java,foo2.java。我在我的Eclipse构建路径上使用的是log4j.jar,mysql.jar。
现在,我正在使用ant,可以很好地构建它。我要做的是编写一个引用所有类路径和log4j信息的简单.sh脚本。但这意味着我必须将所有这些罐子给他们,并且它们必须放在正确的位置。我希望能够说“ java -jar foo.jar”并使其在任何计算机上运行而不必传输任何其他文件。
也许.jar并不是最好的方法。我只希望能够将文件提供给不知道如何设置类路径和所有内容并使其能够运行的某人。
我也很好奇什么是最佳实践。您通常只给某人一个jar并给他们一个所有依赖项jar的zip文件,并告诉他们将其放在类路径上吗?
您是否以某种方式使.rpm?
我对MAVEN不熟悉,但是如果那是最好的方法,我将做一个教程。现在我使用蚂蚁。
我个人不喜欢这样将所有依赖项转储到单个jar文件中。这使得查看二进制发行版的人们很难弄清楚程序真正依赖什么。
我更喜欢做的是用我的jar及其所有依赖项创建一个lib目录。Class-Path:在manifest.mf中使用指定类路径。Main- Class:在清单中指定主类。然后使用java -jar my.jar运行该应用程序。您只需要将您的类及其所有依赖性打包在zip或tar中。
Class-Path:
Main- Class:
java -jar my.jar
Maven确实有一项任务是自动执行清单创建,还有一项任务是自动执行档案创建。但是,对于具有单个工件和很少更改的第3方库的简单项目,它很容易在ant脚本中构建。