2012-03-12 23 views
1

我有一個文件夾myApp1和pom.xml的躺在裏面myApp1。這裏是myApp1如何在maven中構建特定的文件夾?

myAppl1 
    |--src 
     |--main 
      |--java 
       (Java Source Code) 
      |--resources 
       some xml files and doc files 
    |--pom.xml 

的hirerchy現在,如果我這樣做MVN包它建立的所有文件夾,使jar文件(基本上也把所有的文件在jar文件的資源文件夾下)。

我要的是建立不具有對資源文件夾中任何依賴性(java文件的依賴性在POM文件,該文件是在倉庫罐提到)僅java文件夾下的文件。

我不知道我們如何構建maven中的特定文件夾。我想這MVN安裝-pl的src \主\ java中-am但是他說找不到在反應器中選中的項目?

編輯這是多麼我已經把它的pom.xml前

<pluginManagement> 
    <plugins> 
<plugin> 
     <artifactId>maven-jar-plugin</artifactId> 
     <version>${maven-jar-plugin.version}</version> 
     <configuration> 
      <verbose>true</verbose> 
      <excludes> 
       <exclude>resources/*</exclude> 
       <exclude>webapp/*</exclude>      
      </excludes> 
     </configuration> 
</plugin> 
</plugins> 
</pluginManagement> 

,但我得到[錯誤]畸形POM C:\ myProject的\的pom.xml:無法識別的標籤: 'pluginMana gement'(position:START_TAG seen ... \ r \ n \ r \ n ... @ 55:21)@ C:\ myProject \ pom.xml,第55行,第21列 - > [Help 2 ]

回答

2

你必須使用maven-jar-plugin和confi將其排除在不希望將其包含在JAR中的文件或目錄中。另外,請查看Maven網站上的usage。下面是一個示例配置maven-jar-plugin

<build> 
    ... 
    <plugins> 
    ... 
     <plugin> 
      <artifactId>maven-jar-plugin</artifactId> 
      <version>${maven-jar-plugin.version}</version> 
      <configuration> 
       <verbose>true</verbose> 
       <excludes> 
        <exclude>properties</exclude> 
        <exclude>properties/*</exclude> 
        <exclude>spring</exclude> 
        <exclude>spring/*</exclude> 
        <exclude>logback.xml</exclude> 
       </excludes> 
      </configuration> 
     </plugin> 
    ... 
    </plugins> 
    ... 
    </build> 
+0

Jugual可以澄清我的編輯部分的錯誤。預先感謝 – 2012-03-12 09:44:24

+0

插件標籤應該在構建元素內而不是pluginManagement。請參閱答案中的修改後的代碼片段。 – 2012-03-12 09:51:21

+0

嘿jugal謝謝,但它仍然包括資源和webapp文件夾下的文件。 ialso像這樣嘗試 **/resources/*其中資源是文件夾名稱 – 2012-03-12 09:53:11

2

你必須把的maven-JAR-插件聲明中<構建>部分,而不是< pluginManagement>

2

這將是一個「不要這樣做」的答案。

Maven認爲該資源是在你的神器結束的文件,這就是資源是什麼。如果你有其他文件,他們真的應該放在別的地方。

話雖如此,有可能混淆大家的期待的傳統行爲的挫折感,並告訴行家,在SRC /主/資源文件其實都不資源。

要做到在你的POM構建節說

<resources> 
    <resource> 
    <directory>src/main/resources</directory> 
    <excludes> 
     <exclude>**/*</exclude> 
    </excludes> 
    </resource> 
</resources>  

資源複製是由maven resources plugin處理,所以它的文檔是值得相關的麻煩資源看看。

1

的文件不應該複製到你可以使用項目的src/main/config目錄,這也fullfills Maven的命名約定神器文件。

在我的特殊情況下,我使用這個目錄來存儲二進制源文件,如.exe文件aso。它由組件插件壓縮,並以zip和bin的形式部署到我的存儲庫,這很好地工作,看起來像一個乾淨的工作流程。

相關問題