我在尝试执行maven命令行构建时遇到以下错误:
ERROR /trunk/application/web/src/test/java/com/morrislgn/ec/dms/controller/MyControllerTest.java:96:0::0 static无法解析为类型的原因: org.codehaus.mojo.aspectj.CompilationFailedException:编译器错误:导入静态com.morrislgn.ec.dms.common.domain.BuilderType.*;时出错
但是,当我在Eclipse中运行这个测试类时,这些测试会按预期运行。我查看了依赖项,并将公共项目添加为依赖项,添加到类路径等,但没有任何乐趣。
有没有人知道是什么原因导致了这个问题?
提前谢谢你,
莫里斯
发布于 2011-07-19 08:15:05
我认为您需要对aspectj插件配置进行某种依赖。您所需要的类型取决于缺失的BuilderType类应该来自何处。如果你能解释一下,也许有人能说得更具体些。请参阅the plugin docs,特别是here和here (假设您正在编译测试-否则请参阅编译目标)。我不是aspectj的用户--如果有人读了这篇文章,请发表意见!
请张贴你的pom的相关部分,并解释BuilderType应该从哪里来。
发布于 2011-07-28 22:56:00
好吧,我找到了一个解决方案。
上面提到的测试位于我的一个公共项目中的src\ builderClass \main下。因此,它不是随普通jar一起构建的。
我有一个web项目,它依赖于通用的jar,而在测试中使用了BuilderType。在Eclipse中,所有这些都可以解决,因为它似乎能够将一切编织在一起。
然而,使用maven从命令行构建是不同的,因为这依赖于jar文件,而不是java文件。
为了解决这个问题,在公共项目的POM中的构建指令中添加了一个测试类jar文件:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>jar_it</id>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
然后将一个依赖项添加到web项目中,以便它可以使用此jar。
<dependency>
<groupId>group.id</groupId>
<artifactId>common</artifactId>
<version>${project.version}</version>
<scope>test</scope>
<classifier>tests</classifier>
</dependency>
任务完成了。:)
https://stackoverflow.com/questions/6733828
复制相似问题