2012-03-22 38 views
3

我發現Maven隱含了特定的目錄佈局。但我不明白從這裏:http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html 其中java庫需要編譯和運行我的代碼應放置。我認爲它們不應該放在'src/main/resources'下面,因爲資源就像是圖片等。另外,將它們放在'src/main/java'下面看起來不太合適。如果我不使用maven,我會將庫放在項目的根目錄lib目錄中。但我不認爲這對於Maven項目來說是對的。請指教。在爲maven項目放置java庫的目錄中?

UPD:我解決了這個問題。問題在於我將源代碼包設置爲src.main.myApp而不是main.myApp。這似乎打亂了maven。

回答

3

Maven以與「標準」Java項目不同的方式處理項目依賴關係。

您聲明您在項目的pom.xml中依賴的庫:

例如,

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>org.example</groupId> 
    <artifactId>your-project</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>war</packaging> 

    <name>your-project-web</name> 

    <dependencies> 
     <dependency> 
      <groupId>org.codehaus.jackson</groupId> 
      <artifactId>jackson-mapper-asl</artifactId> 
      <version>1.8.5</version> 
     </dependency> 
    </dependencies>  
</project> 

當您使用maven的命令來構建項目,即mvn install,它會下載依賴於你和它們存儲在你的本地倉庫。

+0

我明白了。但IDE不應該有這樣的庫,所以我可以在IDE中開發和編譯我的源代碼,而不會產生不滿意的鏈接或不適合? – dhblah 2012-03-22 17:26:33

+0

您可以使用maven插件進行eclipse,它將解析您的pom.xml並自動爲您下載庫並更新您的項目構建路徑。 – 2012-03-22 17:36:44

+0

我應該在本地安裝maven嗎,還是僅僅使用maven-plugin來安裝eclipse? – dhblah 2012-03-22 17:41:50

2

在Maven中,您不會將庫存在您的項目中。您可以指定這些庫的依賴關係,並將它們填充到本地存儲庫中。在構建的時候,如果你正在打包這些庫(比如說一個war文件),它們會被拉進目標// WEB-INF/lib。但總的來說,整個想法並不是處理這些庫或管理它們,只是爲了管理你的pom文件中的依賴關係,而忘記其餘的。

相關問題