当我将pom.xml打包为EJB时,我得到一个我不理解的错误。如果我以任何方式触摸包,包含Ctrl + S和Maven更新,则会显示此错误。如果我将包装更换回jar,错误就会消失。
代码:
<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>
<groupId>com.myorg.buildparent</groupId>
<artifactId>BuildParent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.myorg.myEjbPackage</groupId>
<artifactId>MyEjbPackage</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>ejb</packaging>
</project>
通过更改
<packaging>ejb</packaging>
到
<packaging>jar</packaging>
错误将消失。
错误字符串供参考:
'Building workspace' has encountered a problem.
Errors occurred during the build.
Errors running builder 'Maven Project Builder' on project 'MyEjbPackage'.
org.codehaus.plexus.archiver.ArchiverException
即使我可以删除错误,我仍然觉得它应该打包为ejb。这对任何人都有意义吗?我的EJB包是否需要在pom中打包为EJB?我应该承认,我对Maven的技能大约是新手/低级中级的。
答案 0 :(得分:1)
尝试在POM中添加此配置。 EJB插件(在选择ejb打包类型时默认绑定到生命周期)不使用与jar / war / ear插件相同的归档版本。
有一个JIRA issue用于更新依赖版本,但它还没有工作。
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ejb-plugin</artifactId>
<version>${maven.ejb.plugin.version}</version>
<dependencies>
<!-- Use the same archiver as the other [j/w/e]-ar plugins -->
<!-- See http://jira.codehaus.org/browse/MEJB-52 -->
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-archiver</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-archiver</artifactId>
<version>2.3</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</pluginManagement>
更新
MEJB-52已在maven-ejb-plugin
版本2.4及更高版本中修复。在添加此配置之前,请考虑将插件版本更新为最新版本。