我公司的政策对自动下载的工件(它们必须得到批准)不满意,所以为了使用Maven,我需要禁用对Maven中央存储库的访问.
换句话说,我不希望Maven尝试从中央进行任何下载.
我知道如何配置本地存储库(联网或不联网),我的想法是使用"祝福"机器来更新本地存储库.
PS:我可以阻止代理/网络级别的请求,但我问的是如何使用Maven的配置.
更新
我终于想出了如何做到这一点.在maven的家中,conf目录中是全局的settings.xml.您可以将镜像设置为central指向某个内部服务器,也可以覆盖它的定义.
我是Maven的新手.如果我用Maven开始新项目,我应该知道它的任何存储库URL吗?
例如,这个Hibernate教程http://docs.jboss.org/hibernate/core/3.3/reference/en/html/tutorial.html说明了如何使用pom.xml文本创建示例项目.但是这个pom.xml不包含任何存储库.
所以,我的m2eclipse插件说,例如Project build error: 'dependencies.dependency.version' for org.hibernate:hibernate-core:jar is missing.,pom.xml中的所有依赖标记
这是因为存储库缺席吗?
在哪里知道存储库URL?有一个大的存储库吗?为什么默认不包括在内?
更新1 据说,Maven默认使用"中央"存储库:http://maven.apache.org/guides/introduction/introduction-to-repositories.html
我在那里搜索了hibernate-code artifact并找到了它.所以,这个工件在中央存储库中.由我的maven说依赖没有找到.因此它不使用它的中央存储库.为什么?
当我使用maven构建时,我看到它检查所有类型的外部存储库,以查找只有我的本地构建应该生成的工件.我怎么能告诉它com.myorg组只能在本地存储库中找到?基本上我想做m2eclipse在工作区分辨率上做的事情,但是在命令行上.
[INFO] snapshot com.myorg:core:0.0.1-SNAPSHOT: checking for updates from sun-jms
[INFO] snapshot com.myorg:core:0.0.1-SNAPSHOT: checking for updates from hibernate
[INFO] snapshot com.myorg:util:0.0.1-SNAPSHOT: checking for updates from sun-jms
[INFO] snapshot com.myorg:util:0.0.1-SNAPSHOT: checking for updates from hibernate
...
Run Code Online (Sandbox Code Playgroud)
背景:
我有一个分层的maven项目(一个级别).我想做一个完整的构建,所以我去顶部做mvn clean install.
我需要使用Jenkins在无法访问maven central的服务器上构建和发布项目,甚至无法访问Nexus.
鉴于我可以访问dev机器上的maven-central,以填充maven local_repository,我可以做到
mvn dependency:resolve-plugins dependency:go-offline
Run Code Online (Sandbox Code Playgroud)
然后复制linux服务器上的local_repository.
然后,获得的骑Non-resolvable parent POM错误,如描述在这里,我充满了特定的配置文件用于Windows(开发)和Linux(詹金斯)以虚假的中心轮廓覆盖由我父POM制成的Maven的中央参考:
<profiles>
<profile>
<id>windows</id>
<activation>
<os>
<family>Windows</family>
</os>
</activation>
<properties> <repository.base.url>file:///c:/maven_distribution_repo/</repository.base.url>
</properties>
</profile>
<profile>
<id>linux</id>
<activation>
<os>
<family>Linux</family>
</os>
</activation>
<properties>
<repository.base.url>file:///appli/Maven_3.1.1_build/maven_distribution_repo/</repository.base.url>
</properties>
<repositories>
<repository>
<id>central</id>
<name>Maven Plugin Repository</name>
<!--<url>http://repo1.maven.org/maven2</url>-->
<url>${repository.base.url}</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>Maven Plugin Repository</name>
<!--<url>http://repo1.maven.org/maven2</url>-->
<url>${repository.base.url}</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)
这样,mvn -o compile仍然会引发Non-resolvable parent POM错误!但是使用此处--legacy-local-repository …