java - 将 Maven 用于具有外部依赖项的客户端-服务器项目

标签 java maven dependencies client-server

我正在开发一款游戏,该游戏分为 3 个项目:客户端、服务器和公共(public)项目。到目前为止,我一直依赖 Eclipse 来处理构建过程,但随着我的项目变得更加复杂,我正在考虑使用 Maven(请参阅我的 previous question )。我已经开始研究这个问题,但我已经有很多问题,而且变得有点难以承受。

  1. 使用 Maven 构建此类项目的最佳方法是什么?我当前的每个项目都应该成为一个单独的 Maven 项目吗?或者也许公共(public)项目应该成为客户端和服务器项目的父项目?或者我的三个项目都应该成为一个巨大的 super 项目吗?

  2. 我的客户端项目依赖于几个外部 JAR 文件;如何在 Maven 中设置此依赖关系?文档建议我需要一个groupId和artifactId等。我在哪里可以找到这些?该系统是否依赖于某个(远程或本地)存储库中编目的 JAR?

  3. 我在公共(public)项目中拥有大量资源。我希望将它们作为构建过程的一部分放置在输出目录中,而不是放置在生成的 JAR 文件中。我在某处读到,Maven 的 src/main/resources 目录中的所有文件都会自动复制到 JAR 文件中,那么我还能把它们放在哪里呢?

  4. 文档解释了如何在命令行上使用Maven来构建项目。如果我在 Eclipse 中进行开发,命令行仍然是运行 Maven 的首选方式吗?或者像 M2Eclipse 这样的插件会实现同样的功能吗?

显然我对 Maven 的理解相当薄弱,因此任何建议/解释/教程将不胜感激。

最佳答案

Common应该是一个简单的maven java项目。

其他将取决于所使用的技术。如果它们都是 java 应用程序,即它们有一个启动它们的 main 方法,那么它们也将是简单的 Maven java 项目。否则它们可能是 Web 项目或其他类型。 Maven 原型(prototype)使这些类型变得简单。您可以在 Eclipse 中创建新的 Maven 项目时评估这些。

客户端和服务器项目都将包含 common 作为依赖项。

父项目的问题是使依赖项和其他 Maven 设置在多个项目之间保持一致。如果这对您来说是个问题,那么您可能希望所有 3 个项目都引用相同的父项目,以便您可以同时管理所有项目的这些设置。

剩下的问题是您是一次性构建所有项目还是单独管理版本。如果您要一次性编译所有版本并立即更改所有版本,您可能需要一个包含所有其他模块的控制项目。

通常使父项目的子项目也成为该父项目的模块。这应该适用于您相对简单的情况。

您的项目所需的外部库将作为依赖项添加。最简单的方法是在 Maven Central 上搜索它们,然后将提供的 Maven pom 片段剪切并粘贴到您的 pom 文件中。如果它们不在 Maven Central 中,您应该能够在其他存储库中找到它们,查看提供程序文档以查看它们是否列出存储库。

如果它们不在任何存储库中,您可以在本地存储库中手动安装它们。

关于java - 将 Maven 用于具有外部依赖项的客户端-服务器项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29710939/

相关文章:

Java 相当于 PHP 的 DIRECTORY_SEPARATOR?

maven - Intellij IDEA 需要很长时间才能更新索引

java - UnsatisfiedDependencyException Spring MVC 项目上下文根问题

grails - Grails:刷新依赖项

java - 如何在找到结果时停止 LDAP 搜索

Java - 从 Jar 文件创建类

eclipse - Maven 缺少传递依赖

qt - 在windows上部署Qt5应用程序的问题

java - Java中多维数组的使用

maven - Gitlab CI。 mvn 验证。未能执行目标