记一次maven私服仓库配置的吭
起因
项目 pom 文件内有
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-geojson</artifactId>
<version>28.2</version>
</dependency>
这样一段配置,gt-geojson还依赖了其他的一些,例如gt-main等,在同事的机器上能正常下载到 gt-main,
但我这边一直不能下载到gt-main等其他依赖,maven私服也代理了osgeo的仓库地址,查看了一下本地 gt-geojson.pom文件,内容如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.geotools</groupId>
<artifactId>gt-geojson</artifactId>
<version>28.2</version>
</project>
很显示这是不完整的,不知道从哪下载的,
又运行了下面的命令,
curl https://repo.osgeo.org/repository/release/org/geotools/gt-geojson/28.2/gt-geojson-28.2.pom
直接从osgeo仓库下载pom文件,内容为
<?xml version="1.0" encoding="UTF-8"?>
<!-- =======================================================================
Maven Project Configuration File
The Geotools Project
http://www.geotools.org/
Version: $Id: pom.xml 33582 2009-07-17 04:40:35Z mbedward $
======================================================================= -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.geotools</groupId>
<artifactId>unsupported</artifactId>
<version>28.2</version>
</parent>
<!-- =========================================================== -->
<!-- Module Description -->
<!-- =========================================================== -->
<groupId>org.geotools</groupId>
<artifactId>gt-geojson</artifactId>
<packaging>jar</packaging>
<name>GeoJSON Support</name>
<description>Provides GeoJSON Encoding and Parsing support.</description>
<licenses>
<license>
<name>Lesser General Public License (LGPL)</name>
<url>http://www.gnu.org/copyleft/lesser.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<!-- =========================================================== -->
<!-- Developers and Contributors -->
<!-- =========================================================== -->
<developers>
<developer>
<id>jdeolive</id>
<name>Justin Deoliveira</name>
<email>jdeolive@sourceforge.net</email>
<organization>OpenGeo</organization>
<roles>
<role>Module Maintainer</role>
<role>Java Developer</role>
</roles>
</developer>
</developers>
<dependencies>
<!-- GeoTools modules -->
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-main</artifactId>
<version>${project.version}</version>
</dependency>
<!-- Third-party dependencies -->
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-epsg-hsql</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
</dependencies>
<profiles>
<profile>
<id>benchmark</id>
<dependencies>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-shapefile</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
</dependencies>
</profile>
</profiles>
</project>
很明显,上面这个才是完整的pom,
解决办法一
为在maven私服中将osgeo的优先级调高,就可以解决这个问题

解决办法二(推荐)
配置本地maven
profiles标签中添加下面这段
<profile>
<id>osgeo</id>
<repositories>
<repository>
<id>osgeo</id>
<name>OSGeo Release Repository</name>
<url>https://repo.osgeo.org/repository/release/</url>
<snapshots><enabled>false</enabled></snapshots>
<releases><enabled>true</enabled></releases>
</repository>
</repositories>
</profile>
activeProfiles 标签中添加下面这段,激活上面的配置
<activeProfile>osgeo</activeProfile>

浙公网安备 33010602011771号