2015-10-13 156 views
9

我有一個Maven項目,其中包含一個parent-pom項目和3個maven-module項目。其中2個模塊是編譯成WAR文件的Java-EE網絡應用程序。其中1個模塊包含其他兩個項目共享的通用JAVA代碼。共享JAVA代碼很容易。在maven模塊之間共享靜態資源

我的問題是如何在不重複每個Web模塊中的共享靜態資源(如JavaScript,CSS和圖像文件)的情況下進行共享?我也想這樣做,以便我可以繼續從Eclipse運行Web應用程序,並對Eclipse運行的服務器自動提供的靜態文件進行更改。

回答

4

嘗試這種情況:

1.

|-- pom.xml 
    |-- appsweb1 (war) 
    |-- appsweb2 (war) 
    |-- common (jar) 
     |-- src/main/java 
     |-- src/static_files 
     |-- pom.xml 
  • 添加在POM appsweb1,appsweb2,或在聚甲醛母體添加它,只是添加的groupId,artifactId的兒童:
  • <plugins> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-resources-plugin</artifactId> 
         <version>2.4.2</version> 
         <executions> 
          <execution> 
           <id>default-copy-resources</id> 
           <phase>process-resources</phase> 
           <goals> 
            <goal>copy-resources</goal> 
           </goals> 
           <configuration> 
            <overwrite>false</overwrite> 
            <outputDirectory>${project.build.directory}/${project.artifactId}-${project.version}/WEB-INF/static_files</outputDirectory> 
            <resources> 
             <resource> 
              <directory>../common/src/main/static_files</directory> 
             </resource> 
            </resources> 
           </configuration> 
          </execution> 
         </executions> 
        </plugin> 
    </plugins> 
    

    在Maven的資源插件文檔:https://maven.apache.org/plugins/maven-resources-plugin/

    +0

    每次我編輯靜態文件時,我是否必須運行此操作,或者Eclipse是否足夠聰明,以便在文件更改時自動移動文件?我很擔心能夠快速開發/測試我對文件所做的更改。 – Eric

    +1

    U可以使用WebJars –

    +0

    我熟悉使用/創建WAR文件,但我從來沒有聽說過WebJars。你能指點我一個關於如何使用它的例子或文檔嗎? – Eric