org/codehaus/plexus/archiver/jar/JarArchiver (Unsupported major.minor version 49.0) - Maven构建错误

3
下午好,
当我尝试构建我的项目时,出现了上述错误。我相信这与Maven的最新更新使用Java 1.6编译有关,而我们正在尝试构建的项目是一个1.4项目。此前的插件可以无问题地工作,因此我已经将以下内容添加到POM.xml文件中,以尝试强制使用现有的插件。
    <dependency>
        <groupId>org.codehaus.plexus</groupId>
        <artifactId>plexus-archiver</artifactId>
        <version>1.2</version>
    </dependency>

但它仍然失败。

非常感谢任何帮助。

谢谢。

6个回答

17

尝试为Maven添加以下插件。对我很有效:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>

1
添加这个插件的目的是什么?(我不是说它是错的,只是我没有看到明显的联系) - madth3
1
问题在于版本本身。最新的2.4版本与m2e不兼容。 - Adrian Ber

3
您正在遇到的错误意味着您尝试在旧版本的Java中加载org/codehaus/plexus/archiver/jar/JarArchiver,但它已经是使用Java 1.5编译的。 plexus-archiver的1.2版本可以在Java 1.4下工作。然而,2.0版本需要Java 1.5。 您确定您使用的是1.2版本吗?
如果这是一个插件,则应在<plugins>下定义。

嗨Tomasz,感谢您的回复。我相信它目前正在使用2.0.1版本,但在之前的构建中,它使用的是1.2版本,直到自动更新发生并将最新版本下载到Maven存储库中。我想强制它继续使用1.2版本,而忽略任何可用的更新。 - Gary
我尝试在插件部分中使用上述XML(显然将依赖标签更改为插件),但收到以下消息:未找到插件Plugin [org.codehaus.plexus:plexus-archiver]的PluginDescriptor。 - Gary

1
使用:

   <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>

0
pom.xml中包含插件的“旧”版本可以解决部分问题。您还需要确保使用正确的JVM匹配。
对于我正在处理的当前项目,我必须将JAVA_HOME设置为使用maven 2.0.8的java 1.4。 Maven的问题在于它会在本地和远程存储库中查找更新(如果在maven settings.xml中设置了远程存储库),然后尝试使用例如“clean”和“install”插件的版本2.5,导致主要次要49.0错误(清除和安装插件版本2.5是使用Java 1.5或更高版本编译的,而我尝试在Java 1.4环境中执行它们)。
通过在项目的pom.xml中添加插件片段,强制其使用2.2版本以及我路径上的旧Java版本:
set path=c:\youroldjavadirectory\bin;c:\youroldmavendirectory\bin),一切都开始正常工作。
在运行maven命令之前,请检查Java的版本:
java -version

mvn -v

0

在我将 maven-source-plugin 版本更改为 2.2.1 之前,我一直遇到这个错误。使用 2.1.1 时也会出现这个错误。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接