如何添加一个项目作为另一个项目的依赖?(How do I add a project as a de

2019-07-21 11:59发布

有两个独立的项目( myWarProjectMyEjbProject )。 所以,当我建立myWarProject我需要安装MyEjbProject到本地存储库中,这样的话,我可以在myWarProject定义为依赖,并成功打包myWarProject。

有没有办法来处理这个没有安装MyEjbProject分开,也没有定义父模块。

我知道这可以通过Ant构建来实现,但不知道是否有通过Maven来处理呢?

我们可以创建一个“聚甲醛”父项目和移动其他两个父项目下。 然而,不幸的是,我不能这样做,因为现在我们已经有了在CVS这两个作为单独的项目,我不能改变结构。 如果我可以通过POM文件处理这个问题,这是林寻找。

Answer 1:

假设MyEjbProject不是另一个Maven项目您拥有或希望与Maven构建,你可以使用系统的依赖性链接到像这样的项目存在的jar文件

<project>
   ...
   <dependencies>
      <dependency>
         <groupId>yourgroup</groupId>
         <artifactId>myejbproject</artifactId>
         <version>2.0</version>
         <scope>system</scope>
         <systemPath>path/to/myejbproject.jar</systemPath>
      </dependency>
   </dependencies>
   ...
</project>

这就是说它通常是更好的(和首选方式)的包安装到存储库中的通过使Maven项目,建设安装或安装它,你似乎已经做的方式。


如果是这样,然而,依赖对方,你总是可以创建一个单独的父项目(必须是一个“聚甲醛”项目)宣布两个其他项目的“模块”。 (子项目就不必申报第三个项目为他们的父母)。 因此你会得到新的父项目,在那里你想也很可能提出这样的两个独立的项目,一个新的目录:

parent
|- pom.xml
|- MyEJBProject
|   `- pom.xml
`- MyWarProject
    `- pom.xml

父项目会得到一个“模块”节来命名所有的子模块。 则聚集将使用依赖于子模块实际上找出该项目待建的顺序)

<project>
   ...
   <artifactId>myparentproject</artifactId>
   <groupId>...</groupId>
   <version>...</version>

   <packaging>pom</packaging>
   ...
   <modules>
     <module>MyEJBModule</module>
     <module>MyWarModule</module>
   </modules>
   ...
</project>

这样的项目可以涉及到对方,但(一旦被安装在本地存储库)仍然可以独立使用在其他项目中的文物


最后,如果您的项目不相关的目录,你可以尝试给他们以相对模块:

filesystem
 |- mywarproject
 |   `pom.xml
 |- myejbproject
 |   `pom.xml
 `- parent
     `pom.xml

现在你可能只是这样做(曾在行家2,刚刚试了一下):

<!--parent-->
<project>
  <modules>
    <module>../mywarproject</module>
    <module>../myejbproject</module>
  </modules>
</project>


文章来源: How do I add a project as a dependency of another project?
标签: maven-3