我正在尝试将Maven依赖项从当前更改为另一种。除了当前所做的一些更改之外,该其他依赖项几乎完全提供了与当前依赖项相同的功能,因为当前依赖项是另一个依赖项的旧版本。为此,我有:

  • 将pom中对旧依赖项的所有引用更改为新依赖项
  • 删除并重新导入Eclipse中的项目
  • maven clean install

  • 但是,我仍然遇到与开始时相同的问题:
  • Eclipse没有看到依赖项的任何类。它甚至不提供导入它们的功能。
  • 在项目上尝试mvn clean package时,Maven失败,并显示以下错误消息:
    [ERROR] Failed to execute goal on project eet-demo-maven: Could not resolve dependencies for project cz.tomasdvorak:eet-demo-maven:jar:1.0-SNAPSHOT: Failed to collect dependencies at com.github.todvorak:eet-client:jar:1.3.2: Failed to read artifact descriptor for com.github.todvorak:eet-client:jar:1.3.2: Could not transfer artifact com.github.todvorak:eet-client:pom:1.3.2 from/to jitpack.io (https://jitpack.io): Not authorized , ReasonPhrase:Repo not found or no access token provided. -> [Help 1]

  • 我已经检查了pom的拼写错误和版本的正确性,因此这些应该不是问题。我怀疑这与依赖性/依赖性管理/ jitpack及其工作方式有关。我从没真正碰过他们。那里的所有内容都是从我为该项目准备的起始代码复制而来的,或者是后来与Maven交涉的结果,在那我几乎是一个完整的初学者。我查看了this问题,并在那里尝试了解决方案,但是在我的情况下,这些解决方案都不起作用。

    如何使Maven再次看到依赖关系及其可传递依赖关系,并正确地编译项目?

    pom:
        <?xml version="1.0" encoding="UTF-8"?>
    <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/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <build>
            <plugins>
    
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>2.10</version>
                    <executions>
                        <execution>
                            <id>copy-dependencies</id>
                            <phase>package</phase>
                            <goals>
                                <goal>copy-dependencies</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>${project.build.directory}</outputDirectory>
                                <overWriteReleases>false</overWriteReleases>
                                <overWriteSnapshots>false</overWriteSnapshots>
                                <overWriteIfNewer>true</overWriteIfNewer>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
    
                <plugin>
                    <groupId>com.akathist.maven.plugins.launch4j</groupId>
                    <artifactId>launch4j-maven-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>l4j-clui</id>
                            <phase>package</phase>
                            <goals>
                                <goal>launch4j</goal>
                            </goals>
                            <configuration>
                                <dontWrapJar>true</dontWrapJar>
                                <headerType>console</headerType>
                                <jar>eet-demo-maven-1.0-SNAPSHOT.jar</jar>
                                <outfile>target\EETSender.exe</outfile>
                                <errTitle></errTitle>
                                <cmdLine></cmdLine>
                                <chdir>.</chdir>
                                <priority>normal</priority>
                                <downloadUrl>http://java.com/download</downloadUrl>
                                <supportUrl></supportUrl>
                                <stayAlive>true</stayAlive>
                                <restartOnCrash>true</restartOnCrash>
                                <manifest></manifest>
                                <icon></icon>
                                <singleInstance>
                                    <mutexName>EETMutex</mutexName>
                                    <windowTitle></windowTitle>
                                </singleInstance>
                                <classpath>
                                    <mainClass>cz.tomasdvorak.eetdemo.Main</mainClass>
                                </classpath>
                                <jre>
                                    <path></path>
                                    <bundledJre64Bit>false</bundledJre64Bit>
                                    <bundledJreAsFallback>false</bundledJreAsFallback>
                                    <minVersion>1.6.0_1</minVersion>
                                    <maxVersion></maxVersion>
                                    <jdkPreference>preferJre</jdkPreference>
                                    <runtimeBits>64/32</runtimeBits>
                                </jre>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
    
    <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
            <archive>
                <manifest>
                    <addClasspath>true</addClasspath>
                    <mainClass>cz.tomasdvorak.eetdemo.Main</mainClass>
                </manifest>
            </archive>
            <descriptors>
                <descriptor>assembly.xml</descriptor>
             </descriptors>
        </configuration>
    </plugin>
    
    </plugins>
        </build>
    
         <groupId>cz.tomasdvorak</groupId>
        <artifactId>eet-demo-maven</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <repositories>
            <repository>
                <id>jitpack.io</id>
                <url>https://jitpack.io</url>
            </repository>
        </repositories>
    
        <dependencies>
            <dependency>
                <groupId>com.github.todvorak</groupId>
                <artifactId>eet-client</artifactId>
                </dependency>
        </dependencies>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>com.github.todvorak</groupId>
                    <artifactId>eet-client</artifactId>
                    <version>1.3.2</version>
                </dependency>
            </dependencies>
        </dependencyManagement>
    </project>
    

    编辑:The dependency in question on GitHub

    编辑2:我按照以下方式更改了pom,显然我已使Maven的精神重新建立了该项目。 Eclipse让我导入了以前看不到的所有东西。但是,对这种突然改变的想法的解释仍然是他问题的一个有价值的结论。
    <project>
    .
    .
    .
        <dependencies>
        <dependency>
            <groupId>com.github.todvora</groupId>
            <artifactId>eet-client</artifactId>
            <version>1.3.2</version>
        </dependency>
        </dependencies>
    <!--
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>com.github.todvorak</groupId>
                    <artifactId>eet-client</artifactId>
                    <version>1.3.2</version>
                </dependency>
            </dependencies>
        </dependencyManagement>
         -->
    </project>
    

    最佳答案

    依赖关系应为:

    <dependencies>
        <dependency>
            <groupId>com.github.todvora</groupId>
            <artifactId>eet-client</artifactId>
    
        </dependency>
    </dependencies>
    
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.github.todvora</groupId>
                <artifactId>eet-client</artifactId>
                <version>1.3.2</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    

    你给托尔多娃增加了一个k

    10-06 05:39
    查看更多