2013-08-16 44 views
1

我正在转换maven中一个最初依赖eclipse和ant构建的旧项目。 指出我不能冠以那个项目的目录布局,我想产生一些类似于用这个ant脚本构建的工件。原始项目使用eclipse在一个目录中使用子项目构建所有类,然后在子包中(与子项目不同)将生成的类与ant打包。Maven无法创建一个包含多个源目录的项目

为了应对这种要求,我已经做了以下结构:(因为现在只有分包之一)

warp-parent 
| 
|- pom.xml 
|- warp-client 
| | 
| | - pom.xml 

父POM如下:

<?xml version="1.0" encoding="UTF-8"?> 
<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> 

<groupId>it.sinesy.warp</groupId> 
<artifactId>warp-parent</artifactId> 
<version>1.0-SNAPSHOT</version> 
<packaging>pom</packaging> 

<name>warp-parent</name> 
<url>http://maven.apache.org</url> 

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
</properties> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>build-helper-maven-plugin</artifactId> 
      <version>1.8</version> 
      <executions> 
       <execution> 
        <id>add-source</id> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>add-source</goal> 
        </goals> 
        <configuration> 
         <sources> 
          <source>../../src</source> 
          <source>../../srcj2ee</source> 
          <source>../../srcjsf</source> 
          <source>../../srcrest</source> 
          <source>../../srcswing</source> 
          <source>../../srctest</source> 
          <source>../../srcweb</source> 
          <source>../../srcws</source> 
         </sources> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

<dependencies> 
</dependencies> 

<modules> 
    <module>warp-client</module> 
</modules> 
</project> 

和孩子一:

<?xml version="1.0"?> 
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<modelVersion>4.0.0</modelVersion> 

<parent> 
    <groupId>it.sinesy.warp</groupId> 
    <artifactId>warp-parent</artifactId> 
    <version>1.0-SNAPSHOT</version> 
</parent> 

<groupId>it.sinesy.warp</groupId> 
<artifactId>warp-client</artifactId> 
<version>1.0-SNAPSHOT</version> 
<name>warp-client</name> 
<url>http://maven.apache.org</url> 

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
</properties> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <includes> 
        <include>**</include> 
        <!-- 
        <include>**/it/tinet/warp/swing/**/java/*</include> 
        <include>**/it/tinet/warp/common/**/java/*</include> 
        <include>**/it/tinet/warp/swing/**/client/*</include> --> 
       </includes> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

<dependencies> 
</dependencies> 
</project> 

当我试图编译编译父pom我得到了以下输出,没有sou rce编译:

[INFO] Scanning for projects... 
[INFO] ------------------------------------------------------------------------ 
[INFO] Reactor Build Order: 
[INFO] 
[INFO] warp-parent 
[INFO] warp-client 
[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building warp-parent 1.0-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- build-helper-maven-plugin:1.8:add-source (add-source) @ warp-parent --- 
[INFO] Source directory: /home/elettronik/test/warp/warp_src/src added. 
[INFO] Source directory: /home/elettronik/test/warp/warp_src/srcj2ee added. 
[INFO] Source directory: /home/elettronik/test/warp/warp_src/srcjsf added. 
[INFO] Source directory: /home/elettronik/test/warp/warp_src/srcrest added. 
[INFO] Source directory: /home/elettronik/test/warp/warp_src/srcswing added. 
[INFO] Source directory: /home/elettronik/test/warp/warp_src/srctest added. 
[INFO] Source directory: /home/elettronik/test/warp/warp_src/srcweb added. 
[INFO] Source directory: /home/elettronik/test/warp/warp_src/srcws added. 
[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building warp-client 1.0-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- build-helper-maven-plugin:1.8:add-source (add-source) @ warp-client --- 
[INFO] Source directory: /home/elettronik/test/warp/warp_src/mvn/src added. 
[INFO] Source directory: /home/elettronik/test/warp/warp_src/mvn/srcj2ee added. 
[INFO] Source directory: /home/elettronik/test/warp/warp_src/mvn/srcjsf added. 
[INFO] Source directory: /home/elettronik/test/warp/warp_src/mvn/srcrest added. 
[INFO] Source directory: /home/elettronik/test/warp/warp_src/mvn/srcswing added. 
[INFO] Source directory: /home/elettronik/test/warp/warp_src/mvn/srctest added. 
[INFO] Source directory: /home/elettronik/test/warp/warp_src/mvn/srcweb added. 
[INFO] Source directory: /home/elettronik/test/warp/warp_src/mvn/srcws added. 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ warp-client --- 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] skip non existing resourceDirectory /home/elettronik/test/warp/warp_src/mvn/warp-parent/warp-client/src/main/resources 
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ warp-client --- 
[INFO] No sources to compile 
[INFO] ------------------------------------------------------------------------ 
[INFO] Reactor Summary: 
[INFO] 
[INFO] warp-parent ....................................... SUCCESS [0.762s] 
[INFO] warp-client ....................................... SUCCESS [1.389s] 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 2.389s 
[INFO] Finished at: Fri Aug 16 14:03:32 CEST 2013 
[INFO] Final Memory: 6M/109M 
[INFO] ------------------------------------------------------------------------ 

有人可以给一些建议,使这项工作?谢谢大家。

+0

难道你不能只将这些源代码作为warp-parent下的独立模块进行编译,并将它作为依赖项添加到warp-client中吗? –

回答

1

您的父母pom显示<packaging>pom</packaging>因此您在父pom中定义的来源不会被编译。

+0

日志:'(default-compile)@ warp-client'表示它指的是模块项目的源代码。 –

+0

因此,最好的解决方案是将pre路径定义为prent pom中的属性,并将该路径添加为儿童poms的源代码? –

+0

确实,只要确保在编译的每个子项目中都使用buildhelper插件和相应的源代码。 – Torsten

相关问题