使用java从maven多模块项目创建war文件失败

时间:2014-06-19 11:15:12

标签: java eclipse maven maven-module

我有父母的maven projecttwo child modules。其中一个子模块有packaging type of jar。此jar将用于具有packaging type of war.

的其他子模块

第一个孩子的pom.xml:

<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.zurel.myParent</groupId>
        <artifactId>myParent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
      </parent>
      <artifactId>myFirstChild</artifactId>
      <packaging>jar</packaging>
</project>

第二个孩子的pom.xml:

 <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.zurel.myParent</groupId>
        <artifactId>myParent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
      </parent>
      <artifactId>myFirst</artifactId>
      <packaging>war</packaging>

    <dependencies>

            <!--other dependencies -->
            <dependency>
                 <groupId>com.zurel.myParent</groupId>
                <artifactId>myFirstChild</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
    </dependencies>
    </project>

当我尝试在第二个maven模块中运行package命令时,出现以下错误:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building myFirst 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for com.zurel.myParent:myFirstChild:jar:0.0.1-SNAPSHOT is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.353s
[INFO] Finished at: Thu Jun 19 16:20:58 NPT 2014
[INFO] Final Memory: 5M/100M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project myFirst: Could not resolve dependencies for project com.zurel.myParent:myFirst:war:0.0.1-SNAPSHOT: Could not find artifact com.zurel.myParent:myFirstChild:jar:0.0.1-SNAPSHOT -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException

2 个答案:

答案 0 :(得分:2)

两个子模块的pom看起来很好。但是,请确保完成以下操作: 1)两个子模块都作为模块添加在父模块(聚合器模块)中 2)聚合模块的包装类型为“pom” 3)在父模块上运行&lt; mvn clean install

样本父pom:

http://maven.apache.org/maven-v4_0_0.xsd">

   <modelVersion>4.0.0</modelVersion>
   <groupId>org.test</groupId>
   <artifactId>myParent</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>myParent</name>
    <url>http://maven.apache.org</url>

   <modules>
    <module>../FirstChild</module>
    <module>../SecondChild</module>
   </modules>

答案 1 :(得分:0)

你缺少“第一个孩子”的依赖性 你在myParent中注册了两个模块吗?订单是否是“第一个孩子”首先建立的? 你执行什么命令?它应该“mvn install”