Maven pom.xml 添加另一个项目
Maven pom.xml adding another project
我已经有了我的 maven web 项目,我想将我的 ejb 项目(相同的工作区)添加为一个库。如何让它在pom.xml?
我的想法是否正确?
假设 MyEjbProject 不是您拥有或想要使用 Maven 构建的另一个 Maven 项目,您可以使用系统依赖关系 link 到项目的现有 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" 项目),将其他两个项目声明为其 "modules" . (子项目不必将第三个项目声明为其父项目)。因此,您将为新的父项目获得一个新目录,您也很可能将两个独立的项目放在这里:
parent
|- pom.xml
|- MyEJBProject
| `- pom.xml
`- MyWarProject
`- pom.xml
父项目将获得一个 "modules" 部分来命名所有子模块。然后聚合器将使用子模块中的依赖项来实际找出项目的构建顺序)
<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>
我已经有了我的 maven web 项目,我想将我的 ejb 项目(相同的工作区)添加为一个库。如何让它在pom.xml?
我的想法是否正确?
假设 MyEjbProject 不是您拥有或想要使用 Maven 构建的另一个 Maven 项目,您可以使用系统依赖关系 link 到项目的现有 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" 项目),将其他两个项目声明为其 "modules" . (子项目不必将第三个项目声明为其父项目)。因此,您将为新的父项目获得一个新目录,您也很可能将两个独立的项目放在这里:
parent
|- pom.xml
|- MyEJBProject
| `- pom.xml
`- MyWarProject
`- pom.xml
父项目将获得一个 "modules" 部分来命名所有子模块。然后聚合器将使用子模块中的依赖项来实际找出项目的构建顺序)
<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>