2011-05-17 60 views
0

我使用eclipse,maven和tomcat容器開發Web應用程序。我的網絡應用程序使用我也在使用的Java庫的快照版本。在eclipse中,這兩個項目(Web應用程序和庫)都是打開的。該庫是一個常規的Maven/Java項目,而該Web應用程序是一個動態Web應用程序。在eclipse中開發Web應用程序時使用快照庫

問題是,在Maven Dependencies下的eclipse顯示的庫項目是開放的,而不是jar文件,所以當我想調試web應用程序時,該庫的jar文件不會被複制到tomcat的WEB-INF/lib文件夾中。如果我使用庫的發行版本,eclipse將顯示jar文件並將其複製到tomcat的WEB-INF/lib文件夾中。

要解決這個問題,我必須關閉庫項目,它按預期工作(jar複製到tomcat中)。有沒有辦法在eclipse中使用tomcat進行調試時,將開放項目包含到動態Web應用程序中?

的.classpath:

<?xml version="1.0" encoding="UTF-8"?> 
<classpath> 
    <classpathentry kind="src" output="target/classes" path="src/main/java"/> 
    <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/> 
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/> 
    <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"> 
     <attributes> 
      <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> 
     </attributes> 
    </classpathentry> 
    <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v6.0"/> 
    <classpathentry kind="output" path="target/classes"/> 
</classpath> 

回答

1

我不知道,如果它工作在網絡的項目,但

<project> -> context menu -> Maven -> Disable Workspace Resolution 

將停止m2eclipse的插件,以解決在工作區的依賴性(通過檢查開放項目)。取而代之的是從(本地)存儲庫請求依賴關係。因此,如果您希望Web項目引用新版本,則必須install您的庫項目。