如何轻松交换Maven设置配置文件?

时间:2013-01-07 08:35:50

标签: maven m2eclipse nexus

在我的公司,我们使用Nexus服务器来获取工件。哪个好。但有时我也想在家里使用Maven,在那里我无法访问Nexus公司。有没有简单的方法来交换Maven设置配置文件?它是否可以使用m2eclipse轻松交换?

目前我正在使用以下settings.xml:

<settings
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
      <servers>  
          <server>  
              <id>central</id>  
              <username>company-user</username>  
              <password>company-user</password>  
          </server>  
          <server>  
              <id>mirror</id>  
              <username>company-user</username>  
              <password>company-user</password>  
          </server>  
      </servers>  
      <mirrors>  
        <mirror>  
            <id>mirror</id>  
            <url>https://url.to.company.nexus</url>  
            <mirrorOf>*</mirrorOf>  
        </mirror>  
      </mirrors>  
      <profiles>  
          <profile>  
              <id>defaultprofile</id>  
              <repositories>  
                  <repository>  
                      <id>central</id>  
                    <name>Repository for Company artifacts</name>  
                      <url>https://url.to.company.nexus</url>  
                      <releases>  
                          <enabled>true</enabled>  
                    </releases>  
                      <snapshots>  
                          <enabled>true</enabled>  
                    </snapshots>  
                  </repository>  
              </repositories>  
              <pluginRepositories>  
                  <pluginRepository>  
                      <id>central</id>  
                    <name>Repository for Company artifacts</name>  
                      <url>https://url.to.company.nexus</url>  
                      <releases>  
                          <enabled>true</enabled>  
                    </releases>  
                      <snapshots>  
                          <enabled>true</enabled>  
                    </snapshots>  
                  </pluginRepository>  
              </pluginRepositories>  
              <properties>  
                  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
              </properties>  
              <activation>  
                  <activeByDefault>true</activeByDefault>  
              </activation>  
          </profile>  
      </profiles>  
      <activeProfiles>  
          <activeProfile>defaultprofile</activeProfile>  
      </activeProfiles>  
</settings>

我知道我可能需要向http://repo1.maven.org/添加新的个人资料,但如何确保现有的mirrors不会因超时而抱怨?

4 个答案:

答案 0 :(得分:3)

根据我的经验,最好有多个设置文件并根据需要进行交换。通过从不同命名的文件复制现有settings.xml的顶部,或使用mvn命令的-s选项指定设置文件。如果这样做太麻烦而无法一直输入,您还可以使用不同的设置文件为mvn命令创建别名。然而,这打破了Maven的bash完成,这就是我坚持只用脚本复制设置文件的原因。

同样的事情实际上适用于交换上下文,例如为Git更改.gitconfig文件,以便您可以将所有这些文件更改打包到脚本或git或其他任何分支中。

此外,它可以帮助在本地运行Nexus,只需连接到它,然后让它代理所有外部存储库..

答案 1 :(得分:2)

我可以建议的最好的方法是使用Git / SVN /并检查settings.xml文件并使用不同的分支来分隔公司和家庭。使用

svn switch URL/branches/company
svn switch URL/branches/home

git checkout company
git checkout home

配置文件不起作用,因为mirrorOf部分无法放入配置文件区域。可以通过配置对话框更改m2e。但这可能会导致与命令行不一致。

答案 2 :(得分:1)

不幸的是,无法在配置文件中配置镜像。为此,maven中有一个开放的request。正如JIRA中所建议的那样,您可以使用脚本轻松地在不同的settings.xml之间切换

至于回答标题中的问题:要轻松切换m2e中的个人资料,建议您从此更新网站安装JBoss Tools Maven Profile Managerhttp://download.jboss.org/jbosstools/updates/stable/juno/

要在所有项目中启用相同的全局配置文件:

    项目资源管理器视图中的
  • :选择所有 maven 项目(Ctrl + A)
  • 按Ctrl + Alt + P打开“配置文件管理”向导,然后选择要激活的配置文件。

这相当于在每个项目属性页面中手动设置活动的maven配置文件,这更加繁琐。

答案 3 :(得分:0)

如果您已在本地存储库中下载了工件,则可以使用mvn -o clean compile ...。这将避免远程存储库查找。