Java 将带有子项目的Maven项目导出到jar文件

Java 将带有子项目的Maven项目导出到jar文件,java,maven,intellij-idea,Java,Maven,Intellij Idea,我正在为minecraft bukkit服务器编写大量插件,我已经厌倦了在我的项目中再次复制并粘贴相同的实用程序类。我决定把它们放在一个单独的项目中,通过maven将它们添加到我的插件中。我用的是IntelliJ Ultimate 我希望有一个maven项目,其中包含我所有的实用类,例如UtilityAPI。然后我想能够创建另一个项目,这将是我的bukkit插件。在第二个项目中,我希望能够使用第一个项目中的所有代码。另外,我非常希望,如果我选择构建插件jar,maven会自动考虑API项目中的最

我正在为minecraft bukkit服务器编写大量插件,我已经厌倦了在我的项目中再次复制并粘贴相同的实用程序类。我决定把它们放在一个单独的项目中,通过maven将它们添加到我的插件中。我用的是IntelliJ Ultimate

我希望有一个maven项目,其中包含我所有的实用类,例如UtilityAPI。然后我想能够创建另一个项目,这将是我的bukkit插件。在第二个项目中,我希望能够使用第一个项目中的所有代码。另外,我非常希望,如果我选择构建插件jar,maven会自动考虑API项目中的最新代码

我开始做这方面的工作,并开始阅读maven模块以及如何使用它们来共同打造不同的项目。我最初认为,这正是我所需要的,并试图补充

<modules>
    <module>UtilityAPI</module>
</modules>

实用API
然而,这导致我的bukkit插件项目被视为父项目,并拒绝在jar中构建,而只是在一个(至少对我来说)相当无用的
.pom
文件中构建。我不知道如何进行。我是否必须为我的bukkit插件项目创建一个“父”项目,其中包含作为模块的api和插件项目?如果是,如何生成
.jar
,而不是
.pom


理想的解决方案是拥有UtilityAPI项目,并能够将其包含在我将来可能编写的任何新插件中。我也很喜欢用一种简单的方法来创建一个包含我最新插件源的jar。这是否可能,如果可能,如何实现?

在Maven多模块项目中,插件必须是另一个模块(而不是具有打包类型
pom
的父模块)。然后,该模块将依赖于API模块(模块之间可能存在依赖关系)


然而,多模块项目通常用于紧密耦合的项目。对于您的场景,情况似乎并非如此。听起来这些插件(可能)除了对API项目的依赖之外没有任何共同之处。也许最好将API项目作为单独的独立Maven项目,然后部署它的快照版本(或者只将它们安装到本地Maven存储库中),并在插件项目中使用它们。

Hmm,好的,我会这样做。有没有办法告诉intellij,我想先安装最新版本的API项目,然后构建我的实际插件?@monamona,如果你只做本地开发,那么你似乎可以同时在intellij中打开多个Maven项目,并且(根据答案)IntelliJ构建项目而无需手动构建项目,请参阅;然而,我没有测试它。尽管当您想要创建
.jar
文件时,您可能仍然需要手动运行Maven命令。