ans*_*elm 3 repository maven multi-module
我有一个Maven 2多模块项目,并希望确保所有内容都来自我当地的签出源.
Aar*_*lla 10
是否有可能告诉Maven永远不会为它拥有的模块下载任何东西?
没有.Maven 2只在构建时"看到"当前模块.从好的方面来说,您可以通过在模块中运行Maven来构建树的一部分.
我是否必须禁用远程存储库?
是的,使用"离线"选项-o或-offline.或者使用settings.xml没有任何文件的代理.但这不是你想要的.
Maven是否总是必须采用昂贵的方式将模块安装到本地存储库中,然后再为每个依赖项提取它?
是的,但它不贵.在构建期间,文件被复制(十年前这是昂贵的).使用依赖项时,Maven只是将文件的路径添加到Java进程.因此,不会再次复制或修改该文件.Maven假定本地存储库中的文件不会更改(或仅在下载/安装发生时更改一次).
如果模块的本地源发生了变化,Maven是否会自动首先重新编译模块的依赖项?
没有.有Maven 3的计划,但我找不到一个选项来启用这样的东西.
要解决您的问题,您应该安装本地代理(如Nexus).
只有当你的本地reposiotory($USER_HOME/.m2/repository)中没有它时,Maven才会下载东西(依赖项).如果您不想下载任何内容,请使用离线模式.这可以通过使用-o开关来完成.例如
mvn -o clean install
Run Code Online (Sandbox Code Playgroud)没有什么昂贵的.如果要构建完整的父项目,它将构建所有模块,然后将工件复制到本地存储库.然后,当您构建一个依赖于这些项目的项目时,Maven只会将它们从硬盘上的本地存储库复制到将为当前项目创建的包.
不.我被烧了.Maven不会自动编译依赖项.有一个名为Maven Reactor Plug-in的插件.此插件使您可以在构建项目之前构建项目的依赖项.
| 归档时间: |
|
| 查看次数: |
15510 次 |
| 最近记录: |