Maven 灵活使用不同的仓库

Nexus私服让我们可以在企业内部从同一个私服下载Maven仓库里面的dependency和plugin.很方便,不过昨天碰到的一个问题是,有一个仓库加入到Nexus后不能,Maven工程无法通过Nexus私服下载该仓库的dependency。

这个仓库叫做:http://download.osgeo.org/webdav/geotools/


想了一个办法绕过它,通过Maven的~/.m2/settings.xml中配置两个Mirror,在遇到osgeo的时候直接使用该仓库,而在其他情况下用私服。

下面是配置:

<settings>
  <servers>
    <server>
      <id>snapshots</id>
      <username>admin</username>
      <password>admin</password>
    </server>
  </servers>
  <pluginGroups>
    <pluginGroup>org.apache.maven.plugins</pluginGroup>
  </pluginGroups> 
  <mirrors>
    <mirror>
      <!--This sends everything else to /public -->
      <id>nexus</id>
      <mirrorOf>external:*,!osgeo</mirrorOf>
      <url>http://my-proxy:8080/nexus/content/groups/public</url>
    </mirror>
    <mirror>
      <id>osgeo</id>
      <mirrorOf>osgeo</mirrorOf>
      <name>Open Source Geospatial Foundation Repository</name>
      <url>http://download.osgeo.org/webdav/geotools/</url>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
      <id>nexus</id>
      <!--Enable snapshots for the built in central repo to direct -->
      <!--all requests to nexus via the mirror -->
      <repositories>
        <repository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <activeProfiles>
    <!--make the profile active all the time -->
    <activeProfile>nexus</activeProfile>
  </activeProfiles>
</settings>


而在maven工程里面如下配置,注意repository.id必须和mirror.id相等。

	<repositories>
		<repository>
			<id>local repository</id>
			<url>http://my-proxy:8080/nexus/content/groups/public/</url>
		</repository>
		<repository>
			<id>osgeo</id>
			<name>Open Source Geospatial Foundation Repository</name>
			<url>http://download.osgeo.org/webdav/geotools/</url>
		</repository>
	</repositories>




你可能感兴趣的:(maven,server)