jef*_*ter 11 java javadoc maven maven-javadoc-plugin
我这样做时会出现以下错误
mvn clean deploy -DperformRelease=true
Run Code Online (Sandbox Code Playgroud)
[错误]退出代码:1 - .java:3:包javax.inject不存在
[错误] import javax.inject.Named;
[错误] ^
[错误] TransactionServiceExternalImpl.java:5:找不到符号
[错误]符号:class命名为
[ERROR] @Named("transactionServiceExternal")
[ERROR] ^
[ERROR] java.lang.ClassCastException:com.sun. tools.javadoc.ClassDocImpl无法强制转换为com.sun.javadoc.AnnotationTypeDoc
POM就是这个......
<groupId>com.xxx</groupId>
<artifactId>ts-impl/artifactId>
<version>2.4.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
只有一节课......
import javax.inject.Named;
@Named("transactionServiceExternal")
public class TransactionServiceExternalImpl
{
}
Run Code Online (Sandbox Code Playgroud)
我得到了错误
但不是......
有人有主意吗?
备注:Apache Maven 3.0.4(r1232337; 2012-01-17 08:44:56 + 0000)
我现在知道原因是Maven Javadoc插件已经从2.9.1变为2.10.这就是问题的原因.
我可以看到这个警告......
[警告] org.apache.maven.plugins的'build.plugins.plugin.version':缺少maven-javadoc-plugin.[警告] org.apache.maven.plugins的'build.plugins.plugin.version':缺少maven-deploy-plugin.
通过在我的pom中设置以下内容....
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9.1</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我可以将版本修复回上一版本.
我将向Maven Javadoc创建者提出一个错误.
http://jira.codehaus.org/browse/MJAVADOC-407
请注意:您可以克隆版本2.9.1的SVN repo,将pom更新为2.10.1,执行mvn安装将其放入您的M2文件夹中.你应该重新开始工作,只需要在真正发布时删除这个tmp版本.
小智 13
在我们的项目中遇到同样的问题.很多人都有这个问题所以应该是关于maven-javadoc-plugin的问题,因为maven-javadoc-plugin打破了mvn release:在第一个回答中说明了.jira问题是http://jira.codehaus.org/browse/MJAVADOC-408.
时间解决方案:
-Dmaven.javadoc.skip=true选项执行构建<maven.javadoc.failOnError>false</maven.javadoc.failOnError>Run Code Online (Sandbox Code Playgroud)<pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>2.9.1</version> </plugin> </plugins> </pluginManagement>
我希望问题很快得到解决.
更新 根据Noremac的评论,如果您正在使用发布插件并希望将参数传递给它,正确的方法是-Darguments =" - Dmaven.javadoc.skip = true".
在我的回答中保持另一种方式,因为这发生在使用javadoc的任何maven构建中.
更新2 此外,评论中的TheConstructor说2.10.1版本修复了这个问题.我无法检查出来.
| 归档时间: |
|
| 查看次数: |
4190 次 |
| 最近记录: |