我面临一个奇怪的问题,并且无法找到有人在eclipse中创建maven ear-ejb项目的相同行为。
我有一个看起来像这样的父pom:
<modules>
<module>ear</module>
<module>ejb</module>
</modules>
<build>
<plugins>
<plugin>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<wtpversion>2.0</wtpversion>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
来自ejb项目的pom.xml:
<build>
<sourceDirectory>ejbModule</sourceDirectory>
<resources>
<resource>
<directory>ejbResources</directory>
</resource>
<resource>
<directory>ejbModule</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-ejb-plugin</artifactId>
<version>2.3</version>
<configuration>
<ejbVersion>3.1</ejbVersion>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.2.4.RELEASE</version>
<scope>provided</scope>
</dependency>
</dependencies>
最后是耳朵项目的pom.xml:
<build>
<plugins>
<plugin>
<artifactId>maven-ear-plugin</artifactId>
<version>2.8</version>
<configuration>
<version>6</version>
<defaultLibBundleDir>lib</defaultLibBundleDir>
<modules>
<ejbModule>
<groupId>com.coba.test</groupId>
<artifactId>jms-test-ejb</artifactId>
<uri>jms-test-ejb.jar</uri>
</ejbModule>
</modules>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.coba.test</groupId>
<artifactId>jms-test-ejb</artifactId>
<version>${project.version}</version>
<type>ejb</type>
</dependency>
</dependencies>
在项目上运行mvn eclipse:eclipse
时,我可以将它们作为现有项目导入,所有性质和参考都可以。当我运行mvn clean package
并将耳朵部署到服务器(在websphere 8,jboss 7和8上测试)时,应用程序(单个mdb)启动并按预期运行。但是当我尝试从eclipse中运行项目时,没有找到已发布的依赖项中的类。当查看项目的部署程序集时(它应该如何)所有依赖项都列在ear项目中,并且它们都不会出现在ejb项目中。我看了一下maven-eclipse-plugin,它明确地将已部署的组件写入ear项目,所以我认为这是应该的方式。但是当我手动将类路径条目添加到部署程序集到ejb项目时,应用程序将被部署并启动而不会出现任何问题。
这是我的项目设置问题还是maven-eclipse-plugin错误?有人自己有这个问题吗?
阅读的Thx 马库斯
编辑:
我没有使用m2eclipse插件。