无论如何要在我的本地文件系统上包含另一个maven项目作为依赖项?

时间:2015-05-19 21:28:18

标签: java maven


   我有一个maven'项目A'这取决于Maven仓库中可用的另一个开源工件。但是,我已经将该工件的代码下载到我的本地磁盘并在我的项目A中修改了我想要的代码。有没有什么方法可以将这两个链接起来,这样当项目A构建时就可以了对于工件还是从我的本地磁盘构建而不将此工件包含到父pom中?基本上我不需要父pom,因为在最终构建中,我将把这些代码贡献回开源项目,并通过我的pom中的依赖项引用该项目。

3 个答案:

答案 0 :(得分:1)

除非我误解了你,否则我觉得你想要使用多模块maven项目:

http://books.sonatype.com/mvnex-book/reference/multimodule.html

您可以使用这样的父POM来构建模块:

<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                         http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>your.groudId</groupId>
    <artifactId>simple-parent</artifactId>
    <packaging>pom</packaging>
    <version>1.0</version>
    <name>Multi Module Simple Parent Project</name>
    <modules>
        <module>open-source-project-modified</module>
        <module>project-a</module>
    </modules>
</project>

这将首先构建open-source-project-modified(您在本地磁盘上修改的版本),然后是project-a(也在本地磁盘上并依赖于开源修改的项目)。 POM中模块的顺序应该是依赖性。

磁盘上项目的结构如下:

simple-parent/
|_____pom.xml (the POM listed above)
|_____open-source-project-modified/
|_____project-a/

如果您查看我提供的链接的介绍部分,您可以下载一个示例zip文件:

http://www.sonatype.com/books/mvnex-book/mvnex-examples.zip

在zip文件中,转到 mvnexbook-examples-1.0 / ch-multi / simple-parent ,你会发现这个结构。

答案 1 :(得分:0)

在opensource项目上执行mvn install以打包并安装在本地存储库上。之后,您可以将依赖项添加到项目A。

答案 2 :(得分:0)

在机器内共享项目非常容易。 这是一般答案。

  1. 创建项目A和B
  2. 假设项目A取决于B
  3. 在本地安装项目B(mvn install)
  4. 在A
  5. 中声明B的依赖关系

    &#13;
    &#13;
    <dependency>
         <groupId>mygrp</groupId>
         <artifactId>B</artifactId>
         <version>use-the-right-version</version>
    </dependency>
    &#13;
    &#13;
    &#13;

    1. 现在,项目A将解决依赖关系B.
    2. Eclipse也能正常工作
    3. 如果将项目B导入eclipse,它将自动成为项目的源依赖项。
    4. 在您的情况下,开源项目是&#34;项目B&#34;。 只需做一个&#34; mvn install&#34;在开源项目上。

      opensource项目已经被声明为依赖项。 它将可用于您的项目(项目A)

      您可以将它们导入eclipse,然后您可以同时编辑它们。