Maven无法解决vaadin依赖

Posted

技术标签:

【中文标题】Maven无法解决vaadin依赖【英文标题】:Maven can't solve vaadin dependencies 【发布时间】:2015-01-27 23:21:20 【问题描述】:

我使用 NetBeans 8,使用 Vaadin 框架有一段时间,但今天我遇到了这个错误:

    cd /Users/BlackSheepII/Sites/microapplicazione/sprint 2/microapplicazione2/microapplicazione2-ui; JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home "/Applications/NetBeans/NetBeans 8.0.1.app/Contents/Resources/NetBeans/java/maven/bin/mvn" clean install
Scanning for projects...

------------------------------------------------------------------------
Building microapplicazione2 - microapplicazione2-ui 0.2
------------------------------------------------------------------------
The POM for com.loop:microapplicazione2-widgetset:jar:0.2 is missing, no dependency information available
------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time: 0.275s
Finished at: Tue Jan 27 23:15:06 CET 2015
Final Memory: 7M/245M
------------------------------------------------------------------------
Failed to execute goal on project microapplicazione2-ui: Could not resolve dependencies for project com.loop:microapplicazione2-ui:war:0.2: Failure to find com.loop:microapplicazione2-widgetset:jar:0.2 in http://maven.vaadin.com/vaadin-addons was cached in the local repository, resolution will not be reattempted until the update interval of vaadin-addons has elapsed or updates are forced -> [Help 1]

To see the full stack trace of the errors, re-run Maven with the -e switch.
Re-run Maven using the -X switch to enable full debug logging.

For more information about the errors and possible solutions, please read the following articles:
[Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

我已尝试按照另一个问题中的建议进行 mvn clean install,但错误是相同的。

我也尝试以所有可能的方式创建项目(来自 bash 的 maven,来自 netbeans 的 maven 原型......)。但是,如果我使用 vaadin-archetype-clean 创建一个 maven 项目,即没有我所理解的自定义附加组件,那么一切正常。

我在问为什么以及如何解决这个问题。我认为 maven 无法解决依赖关系,并且我的 pom.xml 中可能缺少某些内容。

编辑 1

这是 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">
    <parent>
        <artifactId>as</artifactId>
        <groupId>com.loop</groupId>
        <version>7.0.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>as-ui</artifactId>
    <name>as-ui</name>
    <packaging>war</packaging>

    <dependencies>
        <!-- Versions for these are configured in the parent POM -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.vaadin</groupId>
            <artifactId>vaadin-server</artifactId>
        </dependency>
        <dependency>
            <groupId>com.vaadin</groupId>
            <artifactId>vaadin-push</artifactId>
        </dependency>
        <dependency>
            <groupId>com.vaadin</groupId>
            <artifactId>vaadin-themes</artifactId>
        </dependency>

        <dependency>
            <groupId>$project.groupId</groupId>
            <artifactId>as-widgetset</artifactId>
            <version>$project.version</version>
        </dependency>

        <!-- Bean validation implementation -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.1.0.CR1</version>
        </dependency>

        <!-- Testing -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <!-- By attaching the classes to a separate JAR, we can import them
                        directly in the production overlay project, making it easier to compile a
                        separate widgetset for production mode. -->
                    <attachClasses>true</attachClasses>
                    <!-- Exclude some unnecessary files generated by the GWT compiler. -->
                    <packagingExcludes>WEB-INF/classes/VAADIN/gwt-unitCache/**,
                        WEB-INF/classes/VAADIN/widgetsets/WEB-INF/**</packagingExcludes>
                </configuration>
            </plugin>
            <!-- The Jetty plugin allows us to easily test the development build by
                running jetty:run on the command line. -->
            <plugin>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>$jetty.plugin.version</version>
                <configuration>
                    <scanIntervalSeconds>2</scanIntervalSeconds>
                </configuration>
            </plugin>
            <!-- TODO remove? -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>2.16</version>
                <executions>
                    <execution>
                        <id>default</id>
                        <configuration>
                            <skip>true</skip>
                        </configuration>
                    </execution>
                    <execution>
                        <id>integration-test</id>
                        <goals>
                            <goal>integration-test</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>verify</id>
                        <goals>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

【问题讨论】:

【参考方案1】:

Maven 找不到依赖项 - com.loop:microapplicazione2-widgetset:jar:0.2,我认为这也是你的工件。您需要首先使用 mvn clean install 构建它(这个 as-widgetset 项目,而不是 microapplicazione2-ui)(将其添加到您的本地仓库)或部署到您的 Nexus(如果您使用它)

查看您的 pom.xml

<dependency>
            <groupId>$project.groupId</groupId>
            <artifactId>as-widgetset</artifactId>
            <version>$project.version</version>
</dependency>

我说的是依赖关系。在您的本地仓库中找不到它,您需要先构建它

【讨论】:

如您所见,我已尝试这样做。但我有同样的错误。即使使用空的 vaadin 示例应用程序。 您正在构建战争项目而不是 jar。请添加您的 pom.xml 我已经用具有相同问题的空应用程序的 pom 文件编辑了问题 请多注意回答 是的,但我不明白。项目不想建立。而且我对netbeans和maven都很陌生。在 eclipse ant 上继续,但我们现在打开了 netbeans,我必须解决。【参考方案2】:

您有一个父 pom.xml,其中可能列出了需要首先构建/安装的其他模块。

在这里猜测位置,但首先尝试以下操作:

cd /Users/BlackSheepII/Sites/microapplicazione/sprint2/microapplicazione2
mvn clean install

然后转到 UI 项目并尝试构建那个。

【讨论】:

类似情况在这里处理成功:***.com/questions/28137684/…【参考方案3】:

安装本地存储库或进行全新安装(我已经尝试过)都不能解决问题。无论如何,我已经尝试使用与我的几乎相同的 mac,它构建并运行了一个空的 vaadin 项目。所以我再次卸载并重新安装:maven,java。发生了一些变化,我遇到了编译错误。然后我把mac带到支持团队,他们粗暴地重置它并给我带来了一个干净的mac os安装,所以我再次尝试并且它工作(只是码头没有启动但它是另一个故事,所有项目都在tomcat上运行良好)。 所以类路径中的某些东西可能无法正常工作。恐怕我永远也弄不明白那是什么。但这是一个简单的配置问题。据我了解,使用 maven 您不必使用本地存储库。

【讨论】:

以上是关于Maven无法解决vaadin依赖的主要内容,如果未能解决你的问题,请参考以下文章

不排除 Maven 瞬态依赖项(库/jar vaadin json)

maven 无法解决依赖问题

MAVEN 无法解决依赖关系 [重复]

Maven 无法使用 gitlab 解决依赖关系

Maven 无法解决依赖关系

Maven 无法解决具有多个存储库的递归依赖项