2009-04-22 142 views
10

我使用maven2進行依賴關係管理。我有一個項目包含一些Java文件和一些jsp文件,另一個項目是一個Web項目,它依賴於第一個項目。如何從Web項目訪問jsp文件?maven,依賴關係中的jsp文件

我可以看到jsp文件被添加到1-0-SNAPSHOT-sources.jar而不是1-0-SNAPSHOT.jar(它作爲Web項目pom.xml中的依賴項添加)。

+0

究竟如何的第二個項目「依賴」的JSP的?它對他們有什麼影響?包括他們?解析他們?還有別的嗎? – kazanaki 2009-04-22 18:54:53

回答

13

我認爲正確的Maven方法是將JSP文件放到/ src/main/webapp下的web項目中。如果由於某種原因無法執行此操作,則可以使用Maven Dependency Plugin將所需的文件複製到您的Web應用程序中。或者,如果您有WAR項目,則可以使用Overlay複製JSP文件。第二個選項(我建議),將是這個樣子:

<build> 
     <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <configuration> 
      <overlays> 
       <overlay> 
       <groupId>myGroupId</groupId> 
       <artifactId>myArtifactId</artifactId> 
       <type>jar</type> 
       <includes> 
        <include>**/*.jsp</include> 
       </includes> 
       <targetPath>WEB-INF/pages</targetPath> 
       </overlay> 
      </overlays> 
      </configuration> 
     </plugin> 
     </plugins> 
    </build> 
+0

謝謝你的答案。 WAR覆蓋是該項目的正確解決方案。 – vpalle 2009-05-18 09:09:03

0

與解決方案的問題是,用Eclipse深化發展的時候,該項目不處理覆蓋。所以,jsp不可訪問。

0

我想從依賴JAR項目的一些文件到我的WEB項目。

我已經這樣做了,所以我不僅可以在打包WAR時運行文件,而且在運行Maven Servlet容器插件(即jetty:run或tomcat:run)時也可以使用這些文件。

所以這裏是爲我工作:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <version>2.1</version> 
    <executions> 
     <execution> 
      <id>copy-files-to-webapp-directory</id> 
      <phase>compile</phase> 
      <goals> 
       <goal>unpack</goal> 
      </goals> 
      <configuration> 
       <artifactItems> 
        <artifactItem> 
         <groupId>com.my.project</groupId> 
         <artifactId>my-amazing-project</artifactId> 
         <type>jar</type> 
         <overWrite>true</overWrite> 
         <outputDirectory>src/main/webapp</outputDirectory> 
         <includes>**/*.jsp, **/*.css, **/*.png</includes> 
        </artifactItem> 
       </artifactItems> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

希望幫助那些尋找一個類似的解決方案