2012-04-17 48 views

回答

2

我假设,通过“本地资源库”你的意思是库中找到你的公司/办事处,而不是本地资源库在$ HOME/.m2目录/存储库。

定义你的仓库在用户的settings.xml文件的所有存储库的镜子会做的伎俩:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 
         http://maven.apache.org/xsd/settings-1.0.0.xsd"> 

     <mirrors> 
     <mirror> 
      <id>companyrepo</id> 
      <url>http://localrepo.com/repo</url> 
      <mirrorOf>*</mirrorOf> 
     </mirror> 
     </mirrors> 
    </settings> 

这样,每一个项目都会从超级POM但Maven的继承将无法连接到repo1.maven .ORG

+0

有趣的是,这回答了我的问题,如果不是我的问题。 (我还是不知道如何设置一个超级POM,但我不需要了:) – Falko 2012-04-17 17:34:31

+0

SuperPOM是Maven的罐子里面的地方,你需要重新找出给定的罐子,修改POM和jar文件。但在我看来,它根本没有意义...... – 2012-04-17 17:38:18

+0

这是上述文件的“除非明确设置”,这使我相信设置它是一种方式。我停止了。 – Falko 2012-04-17 18:41:49

0

我的理解是,超级POM提供了广泛使用的功能,所有的Maven的POM,除非该功能是明确项目POM提供(例如有点像Java中的Object类)。因此,为避免使用公共存储库,您可以指定要在您的POM中使用的(本地)存储库。但是,更好的方法是在settings.xml文件中指定本地存储库 - 这样可以使用密码保护本地存储库,而无需将用户名/密码提交到源代码存储库并手动分享。

0

你在找什么是Maven的离线模式。使用控制台调用Maven时,可以通过-o--offline选项启用它。如果您真的想要始终启用它,请将<offline>true</offline>添加到您的settings.xml

如果您不能(由于某种原因)使用脱机模式,最极端的选择是覆盖central id的存储库定义。示例:

<repository> 
    <id>central</id> 
    <url>file://C:\tmprepo</url> 
</repository> 

我建议使用基于离线模式的解决方案。它干净清晰。

+0

对不起,我的表述误导了你。正如托马斯正确地假设的那样,我打算谈论公司本地存储库。所以离线模式不适合我。 – Falko 2012-04-17 13:23:08