我有一个maven'项目A'这取决于Maven仓库中可用的另一个开源工件。但是,我已经将该工件的代码下载到我的本地磁盘并在我的项目A中修改了我想要的代码。有没有什么方法可以将这两个链接起来,这样当项目A构建时就可以了对于工件还是从我的本地磁盘构建而不将此工件包含到父pom中?基本上我不需要父pom,因为在最终构建中,我将把这些代码贡献回开源项目,并通过我的pom中的依赖项引用该项目。
答案 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)
在机器内共享项目非常容易。 这是一般答案。
<dependency>
<groupId>mygrp</groupId>
<artifactId>B</artifactId>
<version>use-the-right-version</version>
</dependency>
&#13;
在您的情况下,开源项目是&#34;项目B&#34;。 只需做一个&#34; mvn install&#34;在开源项目上。
opensource项目已经被声明为依赖项。 它将可用于您的项目(项目A)
您可以将它们导入eclipse,然后您可以同时编辑它们。