我正在使用Eclipse Oxygen,但这也是Neon版本中的问题。我已经开始新的Maven项目并选择了webapp-javaee7原型。完成项目创建后,pom.xml配置如下:
<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>7.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<compilerArguments>
<endorseddirs>${endorsed.dir}</endorseddirs>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.6</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>7.0</version>
<type>jar</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
因此,javaee-endorsed-api-7.0.jar被添加到Endorsed库中。据我所知,this post该jar文件包含Annotations包javax.annotation。
我已将包javax.annotation导入到此项目中的某些类中,并使用了一些注释。当我将鼠标悬停在其中一些注释上时,我收到消息:Note: This element neither has attached source nor attached Javadoc and hence no Javadoc could be found.
当我尝试打开&#34;附加&#34;浏览器中的Javadoc我收到警告对话框,说明:The documentation location for (annotation name) has not been configured. For elements from libraries specify the Javadoc location URL on properties page of the parent JAR ...\target\endorsed\javaee-endorsed-api-7.0.jar
。
无法将源代码或Javadoc附加到javaee-endorsed-api-7.0.jar。
当我创建普通的Java项目并使用javax.annotation包时,Javadocs会按预期显示。
如何解决这个问题,让Eclipse在我正在研究的Maven项目中为javax.annotation包显示Javadocs?
感谢。
答案 0 :(得分:1)
我在this post的评论中找到了此问题的解决方案。解决方案是基于项目的:
对我而言,它将JRE系统库放在了赞同的库之上。这意味着Eclipse按照此选项卡指定的顺序从库中提取javadoc。并且因为所有用于注释的javadoc都是在放置在jdk安装的正确目录中的javadoc中定义的(在此选项卡上注释为JRE系统库),现在它们在Eclipse中显示为预期。
答案 1 :(得分:0)
它可能是依赖问题,也可能是JDK和JRE版本,我可以在JDK 8上尝试这个并使用6.0
版本的javaee-web-api。您也可以将答案引用到stackoverflow链接here。
答案 2 :(得分:0)
你的解决方案对我不起作用(也许我只是没有对它们进行足够的重新排序?)但是如果有其他人遇到同样的问题,这对我来说是直接的:
我删除了所有库(项目,库),清理了项目,以便所有缺少的依赖项显示为错误,然后添加它们并再次清理配置文件。也许这可以帮助某人
答案 3 :(得分:0)
Maven将不会下载未在pom.xml中明确取消的依赖项的源。我使用的是弹簧靴,因此不必包括java.persistence
,因为弹簧靴会不加提及地将其包括在内。我要解决的问题是像这样在pom.xml中明确指定java.persistence
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<!-- <version>2.2</version> -->
</dependency>
注意:我注释了该版本,因为Spring Boot会为我选择最佳版本。