maven的settings文件配置

本文介绍了如何在pom.xml中配置本地项目和全局settings.xml中添加阿里云Maven镜像,以解决Flink源码编译过程中因Maven仓库问题。提供了一份详细的镜像配置示例,适用于快速解决Maven依赖查找难题。

查询:

1、http://search.maven.org/

2、https://mvnrepository.com/

3、https://maven-repository.com/

4、http://maven.aliyun.com/nexus/(阿里云镜像站速度最快)

a). 配置只在当前项目生效

在 pom.xml 文件内添加以下配置

<repositories>
    <repository>
        <id>ali-maven</id>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </repository>
</repositories>

b). 配置全局生效

修改 settings.xml 文件
找到 mirrors 标签,在里面加入以下内容

<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>

flink源码编译出现maven以来找不到的情况,需要配置仓库镜像,收藏于下:

<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 http://maven.apache.org/xsd/settings-1.2.0.xsd">
          
  <!-- localRepository
  <localRepository>${user.home}/.m2/repository</localRepository>
  -->

  <!-- interactiveMode Default: true
  <interactiveMode>true</interactiveMode>
  -->

  <!-- offline
  <offline>false</offline>
  -->

  <pluginGroups>
  </pluginGroups>


  <proxies>
  </proxies>

  <servers>
  </servers>

  <mirrors>
	<mirror>
      	<id>mavenRepository</id>
      	<mirrorOf>*</mirrorOf>
      	<name>mavenRepository</name>
      	<url>http://insecure.repo1.maven.org/maven2/</url>
    </mirror>
    
	<mirror>
       <id>mvnRepository</id>
       <name>mvnRepository</name>
       <url>http://mvnrepository.com/repos/</url>
       <mirrorOf>central</mirrorOf>
    </mirror>
	
	<mirror>
    	<id>alimaven</id>
    	<mirrorOf>central</mirrorOf>
        <name>aliyun maven</name>
        <url>https://maven.aliyun.com/nexus/content/repositories/central/</url>
    </mirror>
	
	<mirror>
  		<id>nexus-aliyun</id>
  		<mirrorOf>*</mirrorOf>
  		<name>Nexus aliyun</name>
  		<url>https://maven.aliyun.com/nexus/content/groups/public</url>
	</mirror>
	
    <mirror>
        <id>aliyunmaven</id>
        <mirrorOf>*</mirrorOf>
        <name>alimaven-public</name>
        <url>https://maven.aliyun.com/repository/public</url>
    </mirror>

    <mirror>
        <id>huaweicloud</id>
        <name>maven-huawei-cloud</name>
        <mirrorOf>central</mirrorOf>
        <url>https://repo.huaweicloud.com/repository/maven/</url>
    </mirror>
    <!-- 中央仓库在中国的镜像 -->
    <mirror>
        <id>maven.net.cn</id>
        <name>central-mirrors-in-china</name>
        <mirrorOf>central</mirrorOf>
        <url>http://maven.net.cn/content/groups/public/</url>
    </mirror>

	<mirror>
		<id>repo2</id>
		<name>Mirror from Maven Repo2</name>
		<url>http://repo2.maven.org/maven2/</url>
		<mirrorOf>central</mirrorOf>
	</mirror>

	<mirror>
		<id>repo1</id>
		<name>Maven Repository Switchboard</name>
		<url>http://repo1.maven.org/maven2/</url>
		<mirrorOf>central</mirrorOf>
	</mirror>

	<mirror>
		<id>jboss-public-repository-group</id>
		<name>JBoss Public Repository Group</name>
		<url>http://repository.jboss.org/nexus/content/groups/public</url>
		<mirrorOf>central</mirrorOf>
	</mirror>

	<mirror>
		<id>google</id>
		<name>google maven</name>
		<url>https://maven.google.com/</url>
		<mirrorOf>central</mirrorOf>
	</mirror>
  </mirrors>

  <profiles>
		<profile>
    		<id>aliyunRepository</id>
       		<activation>    
           		<activeByDefault>true</activeByDefault>    
           		<jdk>1.8</jdk>    
       		</activation>
       		<properties>    
	           	<maven.compiler.source>1.8</maven.compiler.source>    
	           	<maven.compiler.target>1.8</maven.compiler.target>    
	           	<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>    
    		</properties>    
 
	    	<repositories>
	              <repository>
	                  <id>aliyun-nexus</id>
	                  <name>aliyun-nexus</name>
	                  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
	                  <releases>
	                      <enabled>true</enabled>
	                  </releases>
	        </repository>

			<pluginRepositories>
                <pluginRepository>
                    <id>aliyun-nexus-plugin</id>
                    <name>aliyun-nexus</name>
                    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
                    <snapshots>
                        <enabled>false</enabled>
                        <updatePolicy>always</updatePolicy>
                    </snapshots></enabled>
                </pluginRepository>
            </pluginRepositories>
            
          </repositories>
	  </profile>
	</profiles>

  	<activeProfiles>
    	<activeProfile>aliyunRepository</activeProfile>
  	</activeProfiles>

</settings>


### 配置 Maven 的 `settings.xml` 文件以使用 JDK 17 为了使 Maven 使用特定版本的 Java 编译项目,在项目的 pom.xml 中配置编译器插件是最直接的方法之一。然而,对于全局性的更改,可以在 `settings.xml` 或者更推荐的方式是在各个项目的 `pom.xml` 中指定所需的JDK 版本。 #### 方法一:在 `pom.xml` 中配置编译器插件 ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>17</source> <target>17</target> </configuration> </plugin> </plugins> </build> ``` 这种方法确保了每个依赖此 POM 文件构建的模块都将采用指定的 Java 版本进行编译[^1]。 #### 方法二:编辑 `settings.xml` 来影响所有项目 如果希望所有的 Maven 构建都统一使用某个特定版本的 JDK,则可以通过修改 `$MAVEN_HOME/conf/settings.xml` 实现这一点: ```xml <profiles> <profile> <id>jdk-17</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> <maven.compiler.release>17</maven.compiler.release> </properties> </profile> </profiles> ``` 上述配置会激活默认概要文件并设置源码级别、目标字节码级别以及发布模式下的兼容性为 JDK 17[^3]。 请注意,虽然可以直接在 `settings.xml` 设置这些属性,但是通常建议针对具体项目的需求定制化地调整 `pom.xml` ,因为这使得不同项目能够独立管理其各自的编译选项而不互相干扰。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

phial03

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值