在脱机模式下访问本地存储库

时间:2012-03-06 00:47:55

标签: maven maven-3

我需要让Maven在脱机模式下运行时访问本地存储库(file://)(基本上,我正在尝试设置存储库层次结构,因此它不会将工件放在我不需要的地方)。 / p>

虽然我一直认为这种情况是受支持的,但这并不是开箱即用的。是否有一些标志在离线模式下启用特定存储库?

3 个答案:

答案 0 :(得分:4)

仅对于开发环境,如果使用IntelliJ IDEA,则可以将Maven配置为脱机工作,如下所示:

Preferences... > Search for Maven > Work offline (checked)

答案 1 :(得分:1)

可以set up profiles for repositories utilizing the local file system而不是网络地址。

<repository>
   <id>mymaven</id>
   <url>file://D:\mylocalrepo</url>
</repository>

根据文件,也可以reference offline mode in a property value

${settings.offline}

然后,根据示例activate a given settings profile,您可以将这些一起用于here。 (如果Maven没有检测到该属性,请尝试使用上述语法直接对其进行评估。)

  <profiles>
    <profile>
      <id>myNeededProfile</id>
      <activation>
        <activeByDefault>false</activeByDefault>
        ...
        <property>
          <name>offline</name>
          <value>true</value>
        </property>
        ...
      </activation>
      ...
    </profile>
  </profiles>

我相信Maven Help Plugin可以通过计算在特定条件下哪个配置文件处于活动状态来指导此开发。

我还认为这可以通过每次请求脱机模式时从命令行显式调用配置文件来更简单地完成。

mvn groupId:artifactId:goal -o -P profile-1,profile-2

或者,更直接的是,通过拥有两个单独的设置文件并专门为离线/在线操作进行分类。您可以在用于检测脱机请求的任何操作系统环境中编写命令行包装器,然后在执行Maven命令之前移动和重命名文件,然后在完成后将其移回。

答案 2 :(得分:1)

Maven总是试图连接到中央存储库。您可以定义自己的中心(它只是属性,您可以重新定义)

<repository>
        <id>central</id>
        <name>My Central</name>
        <layout>default</layout>
        <url>${my_url}</url>
    </repository>

为快照,插件存储库等提供相同的配置。您可以将其用作配置文件 - 它将是可选的。请参阅ingyhere回答。