1

我刚刚开始使用 QT Jambi,并且在使 Maven 插件正常工作时遇到了一些问题。我收到以下错误消息:

[错误] 无法在项目 DegooClientGUI 上执行目标 net.sf.qtjambi:qtjambi-maven-plugin:4.6.3.1:generate (default-cli):执行目标 net.sf.qtjambi:qtjambi-maven-plugin 的 default-cli :4.6.3.1:生成失败:插件net.sf.qtjambi:qtjambi-maven-plugin:4.6.3.1或其依赖项之一无法解析:无法收集net.sf.qtjambi的依赖项:qtjambi-maven-plugin :jar:4.6.3.1():无法读取net.sf.qtjambi的工件描述符:qtjambi-maven-plugin-win32:jar:4.6.3.1:无法传输工件net.sf.qtjambi:qtjambi-maven-plugin -win32:pom:4.6.3.1 from/to qtjambi (http://qtjambi.sourceforge.net/maven2/):校验和验证失败,存储库中没有可用的校验和 -> [帮助 1]

我的 pom 看起来像这样:

  <repositories>
    <repository>
        <id>qtjambi</id>
        <name>qtjambi</name>
        <url>http://qtjambi.sourceforge.net/maven2/</url>
        <releases>
            <checksumPolicy>ignore</checksumPolicy>
        </releases>
        <snapshots>
            <checksumPolicy>ignore</checksumPolicy>
        </snapshots>
    </repository>
</repositories>

<pluginRepositories>
    <pluginRepository>
        <id>qtjambi</id>
        <name>qtjambi</name>
        <url>http://qtjambi.sourceforge.net/maven2/</url>
        <releases>
            <checksumPolicy>ignore</checksumPolicy>
        </releases>
        <snapshots>
            <checksumPolicy>ignore</checksumPolicy>
        </snapshots>
    </pluginRepository>
</pluginRepositories>

<dependencies>
    <dependency>
        <groupId>net.sf.qtjambi</groupId>
        <artifactId>qtjambi</artifactId>
        <version>4.6.3</version>
    </dependency>
</dependencies>

<build>
    <sourceDirectory>src</sourceDirectory>
    <testSourceDirectory>tests</testSourceDirectory>
    <plugins>
        <plugin>
            <groupId>net.sf.qtjambi</groupId>
            <artifactId>qtjambi-maven-plugin</artifactId>
            <version>4.6.3.1</version>
            <executions>
                <execution>
                    <id>qtjambi</id>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <!-- Specifies where sources are. This parameter is MANDATORY -->
                <sourcesDir>src</sourcesDir>
                <!-- following parameters aren't mandatory, they use defaults as specified here
        if not specified
        <translationsDir>src/main/resources/translations</translationsDir>
        <destinationDir>target/generated-sources/qtjambi</destinationDir>
        -->
                <!-- cause -noobsolete switch for lupdate -->
                <noObsoleteTranslations>true</noObsoleteTranslations>
            </configuration>
        </plugin>
    </plugins>
</build>

如您所见,我试图忽略校验和错误,但这无济于事。我还尝试指定存储库中可用的其他版本。那也没有帮助。有任何想法吗?提前致谢!

4

1 回答 1

2

仅供参考,4.6.3.1 没有 win64 版本。

您的错误确实清楚地谈到了 win32 而不是 win64,但值得尝试看看版本 4.6.3 是否可以代替,这个版本有 win32 和 win64)。也许上面测试并确认的人使用的是Win7 32bit或其他东西。但是您已经明确表示您是Win7 64bit。

虽然如果您使用 32 位 JRE 运行 Maven,那么系统会认为它是 32 位系统。也许这就是您正在做的事情,并解释了为什么您的 Win7 64 位正在尝试解析 qtjambi-maven-plugin-win32。

插件的 pom.xml 在运行时根据平台自动选择 qtjambi-maven-plugin-win32 或 qtjambi-maven-plugin-win64。

解决方案的 2 个选项(选择一个)

1) 使用版本 4.6.3

2) 在项目 POM 中添加一个部分以排除 groupId=net.sf.qtjambi artifactId=qtjambi-maven-plugin-win64 这是在 pom.xml 的 build/plugins/plugin/* 部分中完成的。我手头没有示例,但 Eclipse m2e pom.xml 编辑器允许快速轻松地排除。排除手动添加 qtjambi-maven-plugin-win32 的附加依赖项后。据我了解,平台相关部分提供了一个可以运行的 EXE,并且由于所有 Win64 都支持执行 Win32 二进制文件,因此使用 Win32 应该没问题。

供参考

http://repository.qt-jambi.org/nexus/content/repositories/releases-before-2011/net/sf/qtjambi/qtjambi-maven-plugin-win64/这是4.6.3.1 win64版本应该放的目录是。

http://repository.qt-jambi.org/nexus/content/repositories/releases-before-2011/net/sf/qtjambi/qtjambi-maven-plugin-win32/4.6.3.1/这是4.6.3.1 win32插件实际上是。

[2013 年 2 月编辑 - 将“ http://qt-jambi.org/maven2/ ”替换为“ http://repository.qt-jambi.org/nexus/content/repositories/releases-before-2011/ ”这是当前网址]

于 2011-11-30T17:43:01.940 回答