当前位置: 首页 > 知识库问答 >
问题:

Maven:在尝试联机之前,如何配置使用本地存在的工件(~/.m2/repository)?

邓建柏
2023-03-14

在本地有两个maven项目,即Authentication和Commons,我需要将Commons用作身份验证的pom.xml中的依赖项,该pom.xml在运行Commons根目录中的~/.m2/repository后,正确地部署在本地存储库中~/.m2/repository

但是,当我在身份验证根目录中运行Maven clean Install时,我不知道如何阻止它尝试从联机下载这个本地依赖项。

这里是我得到的错误:

[ERROR] Failed to execute goal on project authentication: Could not resolve dependencies for project io.project:authentication:jar:0.0.1-SNAPSHOT: Failure to find io.project.commons:project-commons:jar:0.0.1.RELEASE in https://repo.spring.io/snapshot was cached in the local repository, resolution will not be reattempted until the update interval of spring-snapshots has elapsed or updates are forced

这是身份验证的pom:

<groupId>io.project</groupId>
<artifactId>authentication</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>authentication</name>
<description>Demo project for Spring Boot</description>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.5.BUILD-SNAPSHOT</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <spring-cloud.version>Finchley.BUILD-SNAPSHOT</spring-cloud.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>

    <dependency>
        <groupId>io.jsonwebtoken</groupId>
        <artifactId>jjwt</artifactId>
        <version>0.9.0</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-test</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>io.project.commons</groupId>
        <artifactId>project-commons</artifactId>
        <version>0.0.1.RELEASE</version>
    </dependency>
</dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

<repositories>
    <repository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>https://repo.spring.io/snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

<pluginRepositories>
    <pluginRepository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>https://repo.spring.io/snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </pluginRepository>
    <pluginRepository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </pluginRepository>
</pluginRepositories>
<groupId>io.project</groupId>
<artifactId>project-commons</artifactId>
<version>0.0.1.RELEASE</version>
<packaging>jar</packaging>

<name>commons</name>
<description>Demo project for Spring Boot</description>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.4.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <spring-cloud.version>Finchley.BUILD-SNAPSHOT</spring-cloud.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

<repositories>
    <repository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>https://repo.spring.io/snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

<pluginRepositories>
    <pluginRepository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>https://repo.spring.io/snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </pluginRepository>
    <pluginRepository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </pluginRepository>
</pluginRepositories>

难道不可能配置pom首先查看本地存储库,然后在网上搜索它吗?

共有1个答案

尉迟鑫鹏
2023-03-14

看看你的坐标。在身份验证中,您依赖于io.project.commons:project-commons:

<dependency>
    <groupId>io.project.commons</groupId>
    <artifactId>project-commons</artifactId>
    <version>0.0.1.RELEASE</version>
</dependency>

但是commons项目的实际坐标是io.project:project-commons:

<groupId>io.project</groupId>
<artifactId>project-commons</artifactId>
 类似资料:
  • 大家好。我在生产中使用gitlab ci。我有很多舞台。1) 构建工件2)部署到外部服务器3)使用jfrog cli部署到工件 我在缓存maven本地存储库方面有问题。我的跑步者在第一步(构建)下载所有依赖项,并在最后一步(部署到Artifictory)执行相同操作。此外,我的跑步者在最后阶段之前删除m2文件夹中的所有数据: my gitlav ci yaml(无需第二步):

  • 我的公司目前正在使用checkstyle和findbugs脚本来衡量它们的代码质量。我是一个将这些设置移植到一个新的SonarQube驱动的环境中的人。 我希望SonarLint(运行在eclipse中的SonarQube的本地实例)自动更新本地使用的配置文件,因此它始终符合远程运行服务器的配置。 但是:如果我没有internet连接或没有与服务器的连接(例如,我没有访问公司网络的权限),我仍然希

  • 1. 官网下载maven并解压 2. 电脑需搭建java环境,安装JDK1.7+版本 3. 创建MAVEN_HOME环境变量 4. 将%MAVEN_HOME%/bin加入环境变量path 5. cmd输入mvn -v检查是否安装成功 6. 配置本地仓库、maven下conf文件夹下的setting文件 (红色下画线就是你本地仓库地址,红色打钩的就是你默认的地址) 查看d盘下是否生成,如未生成执行

  • 我有一个包含许多JUnit测试的maven项目。它实际上是一个回归测试存储库。所以现在我想构建一个Jenkins的工作来在构建时自动运行回归测试,而不是每次都下载存储库并在IDE中运行所有测试。对此有任何建议或任何链接让我做更多的研究?谢谢!!!

  • 问题内容: 可以在settings.xml中设置Maven本地存储库: 并且可以在命令行上设置Maven本地存储库: 是否可以在pom.xml本身中指定? 注意:我想在pom.xml中指定一种方法,其中maven最初在其中搜索工件(默认情况下为),而maven通过以下方式安装工件(默认情况下为)。 问题答案: 根据《Maven POM参考》 和《使用多个存储库指南》,您也可以在其中指定存储库。 您

  • 我们有一个maven项目,其中我们使用了一些在任何远程存储库中都不存在的工件。它们作为编译的.jar文件包含在我们的项目中的某个目录中,比如/lib。其中一些是“普通”依赖项,我们可以使用范围system+systemPath从/lib中利用这些依赖项,但是有一个工件应该与maven-dependency-plugin unpack目标一起使用。xml的相关部分如下所示 但是,这仍然试图联系到远程