Java 如何使用Maven组织本地依赖关系?

Java 如何使用Maven组织本地依赖关系?,java,maven,Java,Maven,在我的公司,我有一个Java项目: 通用:包含用于多个项目的类 GUI:这个项目包含一个通用的GUI 如果没有Maven,我可以向类路径添加common,我就可以构建项目。但是,当我想用Maven构建GUI时,如何设置POM.xml和Eclipse工作区呢 我还想稍后将应用程序打包到JAR中,因此我尝试将gui设置为.JAR包 但是,如何将Maven类型分配给公共项目呢 理想情况下,我可以将“common”导入Maven项目 更新: 好的,当我添加为本地依赖项时,mvn package命令

在我的公司,我有一个Java项目:

  • 通用:包含用于多个项目的类
  • GUI:这个项目包含一个通用的GUI
如果没有Maven,我可以向类路径添加common,我就可以构建项目。但是,当我想用Maven构建GUI时,如何设置POM.xml和Eclipse工作区呢

我还想稍后将应用程序打包到JAR中,因此我尝试将gui设置为.JAR包

但是,如何将Maven类型分配给公共项目呢

理想情况下,我可以将“common”导入Maven项目

更新:


好的,当我添加为本地依赖项时,
mvn package
命令似乎能够解析“公共”项目,请参见GUI下的内容。对于是否使用“pom”、“maven插件”或“模块”,仍然有点困惑-任何人都可以添加一些链接/说明,何时使用什么方法?

在GUI中声明常见的maven依赖项。
如果它不是maven项目,请将其添加到本地存储库,如图所示

使用以下命令在eclipse中安装maven插件。
这将在eclipse中启用maven。然后右键单击您的项目并单击Configure,您将看到Convert to Maven项目选项。这会将现有项目转换为maven项目。从向导转换时,可以将项目配置为生成为.jar、.war等。下面是关于如何做的教程

我将遵循以下步骤

  • 创建一个
    本地maven存储库
    来存储自定义JAR。它只有一个包含pom文件的正确目录结构
  • 创建子项目(通用、gui)并将它们打包为jar
  • 将本地JAR安装到本地mvn存储库
  • 使用JAR作为项目的依赖项
  • 示例:

  • ${master\u project}
    位置创建主项目,在
    ${master\u project}/${common}
    ${master\u project}/${gui}
    位置创建子项目

  • 在以下位置创建mvn存储库:
    ${master_project}/local maven repo

  • 在位于
    ${master_project}/${gui}/pom.xml

    <repository>
        <id>local-maven-repo</id>
        <url>file:///${project.parent.basedir}/local-maven-repo</url>
    </repository>
    
    
    本地马文回购
    文件://${project.parent.basedir}/localmaven repo
    

  • 在本地mvn存储库中安装JAR

    mvn install:install-file
    -Dfile=<path-to-file>
    -DgroupId=<group-id>
    -DartifactId=<artifact-id>
    -Dversion=<version>
    -Dpackaging=<packaging>
    -DgeneratePom=true
    
    Where: <path-to-file>  the path to the file to load
    <group-id>      the group that the file should be registered under
    <artifact-id>   the artifact name for the file
    <version>       the version of the file
    <packaging>     the packaging of the file e.g. jar
    
    mvn安装:安装文件
    -D文件=
    -DgroupId=
    -DartifactId=用于此答案。
    
    以下是有关

    的更多资源,您可以像在
    src/main/java
    下的包一样集成common,如果您希望在maven项目中编译它们,您可以在maven中为GUI创建一个额外的配置文件。谢谢,这似乎很有效。尽管如此,项目之间仍然存在插件、pom和模块关系,我想这是针对其他问题的,但如果您能提供一些基本的指示,说明何时使用什么,那就太好了!谢谢隐马尔可夫模型。。我对这个答案有点困惑。使用Eclipse时,我通常会创建一个新的工作区,然后转到“new project”-->Maven project。您能否修改您的答案以适应Eclipse工作流?那太好了@poseid主项目作为maven项目,其他项目作为maven模块。我已经更新了我的答案,添加了参考资料。
     <dependency>
         <groupId>org.company</groupId>
         <artifactId>common</artifactId>
         <version>0.9.0-SNAPSHOT</version>
     </dependency>