2
試圖避免使用行話,以免被誤解。
這裏是場景,我的項目需要一個jar來獲得編譯(比如說x.jar)。我的項目一經編譯就會被轉換成一個WAR文件,並在某處被部署。
現在我想讓x.jar在我的項目中進行編譯,它不應該被打包(或部分)在WAR文件中。
我該如何在Maven中做到這一點?我應該使用依賴範圍爲「提供」如何在Maven中管理編譯時依賴關係
試圖避免使用行話,以免被誤解。
這裏是場景,我的項目需要一個jar來獲得編譯(比如說x.jar)。我的項目一經編譯就會被轉換成一個WAR文件,並在某處被部署。
現在我想讓x.jar在我的項目中進行編譯,它不應該被打包(或部分)在WAR文件中。
我該如何在Maven中做到這一點?我應該使用依賴範圍爲「提供」如何在Maven中管理編譯時依賴關係
你是對的,因爲在Maven FAQs規定,範圍使用是provided
,
如何防止包括WEB-INF/lib中的JAR?我需要一個「僅編譯」範圍! 提供您應該爲此使用的範圍。這表明Maven將在運行時通過其容器或JDK提供依賴關係。
此範圍的依賴關係不會被傳遞,也不會被捆綁到WAR等包中,也不會被包含在運行時類路徑中。
要快速嘗試一下,你可以使用
mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp
生成一個「玩具web應用」項目,添加一個依賴於您的項目,將其設置爲<scope>provided</scope>
。