繁体   English   中英

Maven pom.xml添加另一个项目

[英]Maven pom.xml adding another project

我有我的Maven Web项目,我想将我的ejb项目(相同的workapce)添加为一个库。 如何在pom.xml中制作它? 我是否以正确的方式思考? 在此处输入图片说明

假设MyEjbProject不是您拥有的另一个Maven项目或不是要使用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项目并进行构建或以您似乎已经在执行的方式安装。

编辑:但是,如果它们彼此依赖,则可以始终创建一个单独的父项目(必须是“ pom”项目),并将其他两个项目声明为其“模块”。 (子项目不必将第三个项目声明为其父项目)。 结果,您将为新的父项目获得一个新目录,您很可能还会在其中放入两个独立的项目,如下所示:

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

现在您可以执行此操作(在Maven 2中工作,只需尝试一下):

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM