执行maven构建时无法解决类型错误

时间:2011-07-18 13:42:57

标签: eclipse maven-2 build

尝试执行maven命令行构建时出现以下错误:

[错误] /trunk/application/web/src/test/java/com/morrislgn/ec/dms/controller/MyControllerTest.java:96:0::0 BuilderType无法解析为某个类型 引起:org.codehaus.mojo.aspectj.CompilationFailedException:编译器错误: 导入静态错误com.morrislgn.ec.dms.common.domain.BuilderType。*;

但是,当我从Eclipse中运行此测试类时,这些测试按预期运行。我已经查看了依赖项,并将常见项目作为一个依赖项,添加到了类路径等,没有任何乐趣。

是否有人对可能导致此问题的原因有任何其他想法?

提前致谢,

莫里斯

2 个答案:

答案 0 :(得分:0)

我认为你需要对aspectj插件配置有某种依赖性。您需要的那种取决于丢失的BuilderType类应该来自哪里。如果你能解释某人可能更具体。请参阅the plugin docs,尤其是herehere(假设您正在编译测试 - 请参阅编译目标。我不是Aspectj用户 - 如果有人读这个是谁,请称重!

请发布你的pom的相关部分,并解释BuilderType应该来自哪里。

答案 1 :(得分:0)

好的,找到了解决方案。

上面提到的builderClass是在我的一个常见项目中的src \ test \ main下。因此,它没有包含在普通的罐子里。

我有一个依赖普通jar的web项目,而在其测试中使用了BuilderType。在Eclipse中,所有这些都可以解决,因为它似乎能够将所有东西编织在一起。

使用maven从命令行构建是不同的,因为这依赖于jar文件而不是java文件。

要解决此问题,测试类jar文件已添加到POM中用于公共项目的构建说明中:

    <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>

完成工作。 :)