如何从maven非标准结构项目中建立战争?

时间:2016-01-08 14:31:46

标签: eclipse maven-3

我在我公司的某个目录结构项目上工作。现在我必须将项目转换为Maven项目。它是基于公司框架的Web应用程序。 项目导出为war文件,

这是项目结构:

web-app-name
    - WebContent
        - css
        - html
        - images
        - modules
        - WEB-INF
           - classes
           - config
           - data
           - lib
           - src
              - src_core
              - src_util
              - ... other src_
              - propertis.file

我不能使用标准的Maven结构。 到目前为止,我构建了pom.xml文件并使项目工作。 从私人服务器下载依赖关系,并且工作正常。

问题是文件结构。我尝试覆盖默认的maven路径,但没有去。 当我导出war文件时,没有css,html,图像文件......只有WEB-INF目录:

WEB-INF
  - classes
  - lib
META-INF

有没有办法让warCon文件中的所有目录都在WebContent下有一些例外,或者我可以忘记将项目转换为Maven?

没有依赖关系的Pom文件:

...
<properties>
  <dborr.base.dir>${basedir}</dborr.base.dir>
</properties>
<build>
  <sourceDirectory>${dborr.base.dir}\coll_dborr\WebContent</sourceDirectory>
      <plugins>
  <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
      <source>1.7</source>
      <target>1.7</target>
      <compilerVersion>1.7</compilerVersion>
    </configuration>
  </plugin>
  <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-war-plugin</artifactId>
      <version>2.6</version>
      <configuration>
         <warSourceDirectory>${dborr.base.dir}/coll_dborr/WebContent</warSourceDirectory>
       <webResources>
          <resource>
            <directory>${dborr.base.dir}/coll_dborr/WebContent/css</directory>
          </resource>
       </webResources>
      </configuration>
   </plugin>
</plugins>
</build>

另一个问题是有没有办法将所有源文件包含在pom.xml文件中的.classpath中?

1 个答案:

答案 0 :(得分:0)

您的解决方案应该有效,请参阅Apache Maven WAR Plugin

  

<强> warSourceDirectory:

     

要包含在WAR中的额外文件的单个目录。这是放置JSP文件的位置。

     

- 输入:java.io.File

     

- 必填:是

     

- 默认:$ {basedir} / src / main / webapp

但您的路径<p> What Genre you want? <select name="Ganre"> <option value="">Select...</option> <option value="FPS">FPS</option> <option value="JRPG">JRPG</option> <option value="RPG">RPG</option> <option value="Sports">Sports</option> </select> <input type="submit" value="Submit" /> <if (Genre == "FPS") { ?> <form method="get" action="FPS.php"}> <else if (Genre == "JRPG") { ?> <form method="get" action="JRPG.php"}> <else if (Genre == "RPG") { ?> <form method="get" action="RPG.php"}> <else if (Genre == "Sports") { ?> <form method="get" action="Sports.php"}> </p> 不正确,应为${dborr.base.dir}\coll_dborr\WebContent

您的${basedir}\web-app-name\WebContent似乎也不对,因为它必须是您的来源的路径,而不是您的webapp资源。

也许您还要删除sourceDirectory,因为它已包含在webResources中?