【问题标题】:maven bad class javax.annotation.PostConstructmaven 坏类 javax.annotation.PostConstruct
【发布时间】: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


【解决方案1】:

对于java

<dependency>
  <!--  Only bundled with java 1.6+ -->
  <groupId>javax.annotation</groupId>
  <artifactId>jsr250-api</artifactId>
  <version>1.0</version>
</dependency>

【讨论】:

    猜你喜欢
    • 2019-01-24
    • 2015-12-07
    • 2015-08-29
    • 1970-01-01
    • 2010-09-24
    • 2011-01-02
    • 2013-11-09
    • 2018-07-10
    • 1970-01-01
    相关资源
    最近更新 更多