【发布时间】:2012-02-12 16:04:16
【问题描述】:
我正在尝试构建一个战争项目。在编译时它给了我这个错误:
[compiler:compile] 编译432个源文件到 C:\Beta\ECORP5\ECORP5-web\target\classes -------------------------------------------------- ------------ 编译错误: -------------------------------------------------- ----------- \Beta\fin\fin-web\src\main\java\com\comp\fin\utils\Formatter.java:[23,-1] 无法访问 javax.annotation.PostConstruct 错误的类文件: C:\Beta\fin\fin-web\target\endorsed\javaee-endorsed-api-6.0.jar(javax/annotation/PostConstruct.class) class 文件有错误的版本 50.0,应该是 49.0 1 错误
我无法摆脱这个错误。我使用的是 java 6 和 jdk 1.5,这是我的 POM.xml 或其中的一部分,没有无关的东西:
> <**?**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>
> <*parent>
> <*artifactId>fin<*/artifactId>
> <*groupId>com.comps<*/groupId>
> <*version>1.0-SNAPSHOT<*/version>
> <*/parent>
>
> <groupId>com.comps</groupId>
> <artifactId>fin-web</artifactId>
> <version>1.0-SNAPSHOT</version>
> <packaging>war</packaging>
>
> <name>fin-web</name>
>
> <properties>
> <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
> </properties>
>
> <dependencies>
>
> <dependency>
> <groupId>javax</groupId>
> <artifactId>javaee-web-api</artifactId>
> **<version>6.0</version>**
> </dependency>
>
> </dependencies>
>
> <build>
> <plugins>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-compiler-plugin</artifactId>
> <version>2.3.2</version>
> <configuration>
> <**source>1.5</source>
> <target>1.5</target>**
> <compilerArguments>
> <endorseddirs>${endorsed.dir}</endorseddirs>
> </compilerArguments>
> </configuration>
> </plugin>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-war-plugin</artifactId>
> <version>2.1.1</version>
> <configuration>
> <failOnMissingWebXml>false</failOnMissingWebXml>
> </configuration>
> </plugin>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-dependency-plugin</artifactId>
> <version>2.1</version>
> <executions>
> <execution>
> <phase>validate</phase>
> <goals>
> <goal>copy</goal>
> </goals>
> <configuration>
> <outputDirectory>${endorsed.dir}</outputDirectory>
> <silent>true</silent>
> <artifactItems>
> <artifactItem>
> <groupId>javax</groupId>
> <artifactId>javaee-endorsed-api</artifactId>
> <version>6.0</version>
> <type>jar</type>
> </artifactItem>
> </artifactItems>
> </configuration>
> </execution>
> </executions>
> </plugin>
> </plugins>
> </build>
>
> </project>
我正在使用 NetBeans IDE 创建一个 ear 项目,这是 war 模块的 POM。我正在单独构建它。我不认为这应该是一个问题。
如果有人能告诉我这里出了什么问题,我将不胜感激。
附带说明:当我创建 Maven Ear 项目时,它使用的是 JavaEE 6,所以 war 模块也使用了 Java EE 6,但是当我在 war 模块的 webApp 目录中添加一些文件时,Java EE 版本发生了变化Java EE 1.4 的 war 模块属性我不知道它是如何做到的,以及为什么或哪个文件使它在模块级别发生变化。
【问题讨论】:
-
这就是问题所在。您需要使用更高版本的 Jave EE 重新启动它。这就是不匹配告诉你的。
-
它看起来像 1.5 级别的 maven-compiler-plugin。检查一下。
标签: jakarta-ee maven war