плохой класс maven javax.annotation.PostConstruct - PullRequest
1 голос
/ 12 февраля 2012

Я пытаюсь построить военный проект. и при компиляции это дает мне эту ошибку:

[compiler: compile] Компиляция 432 исходных файлов в C: \ Beta \ ECORP5 \ ECORP5-веб \ целевых \ классы -------------------------------------------------- ----------- ОШИБКА КОМПИЛЯЦИИ: -------------------------------------------------- ----------- \ Beta \ fin \ fin-web \ src \ main \ java \ com \ comp \ fin \ utils \ Formatter.java: [23, -1] не могу получить доступ к файлу плохого класса javax.annotation.PostConstruct: C: \ Beta \ плавник \ плавник веб \ цель \ одобрила \ JavaEE одобренной-апи-6.0.jar (javax / аннотаций / PostConstruct.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>

Я использую IDE NetBeans для создания ушного проекта, и это POM военного модуля. Я строю это отдельно. Я не думаю, что это должно быть проблемой.

Я буду признателен, если кто-нибудь скажет мне, что здесь не так, что он дает эту ошибку.

С другой стороны: когда я создавал проект Maven Ear, он использовал JavaEE 6, поэтому военный модуль также использовал Java EE 6, но когда я добавил некоторые файлы в каталог webApp военного модуля, версия Java EE изменилась в свойства военного модуля для Java EE 1.4 Я не знаю, как он это делает и почему или какой файл заставляет его меняться на уровне модуля.

1 Ответ

8 голосов
/ 06 сентября 2013

Для Java <1.6 вам нужно использовать эту зависимость для получения аннотаций JSR-250, таких как PostConstruct </p>

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