2012-04-29 61 views
0

我有一个依赖于模块B(都是项目中的子模块)中的类的maven模块A作为模块取出一个maven项目的一部分

Apom.xml我有以下几点:

<dependencies> 
    <dependency> 
     <groupId>test.pack</groupId> 
     <artifactId>B</artifactId> 
     <version>1.0-SNAPSHOT</version> 
    </dependency> 
    </dependencies> 

但是当我尝试建立A,该B不会出现在依赖正确的,我在那是类出现编译错误在Atest.pack.packFromA包中的导入语句中,看起来像import test.pack.packFromB.*

因此,我的B依赖项无法正常工作。但我认为B中的类将被打包并添加到类路径中,所以我可以使用它们。我试图在该依赖项中添加<type>,但这并没有帮助。我在这里做错了什么?提前致谢。

编辑: 父母pom.xml<modules>部分看起来像这样:

<modules> 
    <module>B</module> 
    <module>A</module> 
    </modules> 

这里是我的错误:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project A: Compilation failure: Compilation failure:

+0

您可以添加父pom的部分吗?如果你在模块A中引用模块B,它应该在模块A – Lexandro 2012-04-29 10:39:15

+0

@Lexandro之前编译。感谢你的回复,我现在将添加它。我也尝试在我的Maven本地存储库中移动B的战争,但它不起作用。它需要完成吗? – 2012-04-29 10:42:22

+0

@Lexandro我也添加了错误,并且,对不起,如果A和B名称使这个描述不是一个好的描述。 – 2012-04-29 11:12:18

回答

1

你有没有做过模块B mvn install,你想之前构建模块A?

(如果您使用“mvn package”而不是mvn install,模块B将不会放入回购站中,因此在构建模块A时Maven将无法找到它)。

另外,你有没有尝试从父模块构建多模块项目? (当你这样做时,Maven将建立在正确的顺序模块)

如果这不是它,验证所引用位于src/main/java/test/pack/packFromB下模块B.如果他们src/test/java..下的类,你需要一个特定的类型对此的依赖。

希望有所帮助。

+0

感谢您的回答。是的,我做了所有这些,文件夹结构应该是正确的。但是,可能安装并不像我想象的那么成功,所以我会尽力重做所有这些。 – 2012-04-29 11:57:49

+0

我会将这一个标记为最佳答案,因为只要我没有完整描述我的问题,它就会很好。事实上,我试图增加战争依赖,这似乎是一个坏主意。但后来我做了单独的jar依赖,安装和清理。现在它就像一个魅力(我很高兴地说:)),非常感谢,它仍然是一个有用的答案。 – 2012-04-29 13:32:55

+0

甜!是的,如果我没有记错,取决于战争会爆炸那场战争,并将其纳入你的战争。 – 2012-04-30 10:30:03

相关问题