有两个独立的项目(myWarProject和MyEjbProject).因此,当我构建myWarProject我需要将MyEjbProjectin 安装到本地存储库时,那么我可以在myWarProject中定义为依赖项并成功打包myWarProject.
有没有办法处理这个没有MyEjbProject单独安装,也没有定义为父模块.
我知道这可以通过ant build实现,但想知道是否有办法通过maven来处理?
我们可以用"pom"创建父项目,并在父项目下移动另外两个项目.但是,遗憾的是我不能这样做,因为目前我们已经将这两个作为CVS中的单独项目,我无法改变结构.如果我可以通过pom文件处理这个,这就是我正在寻找的东西.
Sim*_*ger 63
假设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>
Run Code Online (Sandbox Code Playgroud)
也就是说,将软件包安装到存储库通常是更好的(也是首选方式),方法是将其作为maven项目并构建或以您似乎已经完成的方式安装它.
但是,如果它们彼此依赖,则可以始终创建单独的父项目(必须是"pom"项目),将其他两个项目声明为其"模块".(子项目不必将第三个项目声明为其父项).因此,您将获得新父项目的新目录,您可能也很可能将这两个独立项目放在这样的目录中:
parent
|- pom.xml
|- MyEJBProject
| `- pom.xml
`- MyWarProject
`- pom.xml
Run Code Online (Sandbox Code Playgroud)
父项目将获得一个"模块"部分来命名所有子模块.然后,聚合器将使用子模块中的依赖项来实际找出要构建项目的顺序)
<project>
...
<artifactId>myparentproject</artifactId>
<groupId>...</groupId>
<version>...</version>
<packaging>pom</packaging>
...
<modules>
<module>MyEJBModule</module>
<module>MyWarModule</module>
</modules>
...
</project>
Run Code Online (Sandbox Code Playgroud)
这样项目可以相互关联,但是(一旦它们安装在本地存储库中)仍然可以作为其他项目中的工件独立使用
最后,如果您的项目不在相关目录中,您可能会尝试将它们作为相关模块提供:
filesystem
|- mywarproject
| `pom.xml
|- myejbproject
| `pom.xml
`- parent
`pom.xml
Run Code Online (Sandbox Code Playgroud)
现在你可以这样做(在maven 2中工作,只是尝试过):
<!--parent-->
<project>
<modules>
<module>../mywarproject</module>
<module>../myejbproject</module>
</modules>
</project>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
88438 次 |
| 最近记录: |