0

我有一个 java 项目,其中包含 3 个不同的类,每个类都有一个 main()。我有一个用于整个项目的 pom.xml 文件。

我希望 Maven 为每个类及其依赖项制作一个 jar。

我怎样才能做到这一点??

4

3 回答 3

2

如果您有三个主类,每个类都是一个单独的应用程序,那么您很可能应该有四个 jar:一个用于每个主类,一个用于在它们之间共享的代码。Maven 与“每个模块一个工件”的想法非常紧密,如果你试图违背这一点,你就会走上一条黑暗而危险的道路。在 Maven 中表达这种结构的自然方式是在五个或六个模块中:

  1. 项目的根模块,它聚合了所有其他模块。这不会是一个 jar 生成模块。它的包装是“pom”。
  2. (可选)一个“父”子模块,所有生成工件的模块都从该子模块继承。您可以使用此模块来建立公共依赖版本,设置所有模块所需的存储库等。这也将打包设置为“pom”。它是可选的,因为位于项目根目录的聚合器模块也可以扮演这个角色,但就像在代码中一样,关注点分离是好的。Sonatype 书中的“POM 最佳实践”涵盖了该主题。
  3. 包含在三个主要类之间共享的所有代码的子模块。

和 4-6:每个主类的子模块以及特定于该主类/应用程序的支持代码和配置。

在文件系统上,此解决方案如下所示:

<project folder>
  - pom.xml
  - parent-module
    - pom.xml
  - common
    - pom.xml
  - app1
    - pom.xml
  - app2
    - pom.xml
  - app3
    - pom.xml

然后,您将使用诸如组装插件appassembler之类的东西来创建将适当的配置、库和启动脚本打包在一起的发行版。

于 2013-02-17T16:13:58.160 回答
0

您可以使用配置文件来做到这一点。在这里你有例子(点击)

于 2013-02-17T15:28:49.650 回答
0

你真的不应该那样做。请阅读这个,它也链接到另一个SO 帖子。

于 2013-02-17T15:29:09.383 回答