簡體   English   中英

Maven:在classes文件夾中包含META-INF文件夾

[英]Maven: Including a META-INF folder in the classes folder

我有一個非常簡單的WAR項目,我想在類輸出文件夾的頂部包含一個名為META-INF的目錄,其中所有已編譯的Java類都是。 我正在使用Maven,但似乎默認情況下Maven不會包含任何不是Java類的內容。 所以它忽略了我位於src目錄頂部的META-INF目錄。 META-INF目錄包含名為persistence.xml的文件。 有關如何指示Maven將此目錄和文件放入輸出文件夾的快速指示?

通常,對於基於Java的Maven項目,非源文件應該放在項目的src/main/resources子目錄中。 在構建的進程資源階段,該resources目錄的內容將復制到輸出目錄(默認情況下為target/classes )。

對於Maven WAR項目,它稍微復雜一些:還有src/main/webapp目錄,其中Maven希望找到WEB-INF/web.xml 要構建WAR文件,該文件必須存在; 否則,您將看到如下錯誤消息:

[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode)

由於WEB-INF目錄必須存在於src/main/webapp ,我建議不要在src/main/resources再次定義它。 雖然這是完全有效的,並且兩個目錄的內容將被合並,但如果在兩者中定義了文件,則會令人困惑。 src/main/resources的內容優先,因為它們被復制到src/main/webapp的內容頂部。

Maven希望在資源文件夾中輸入此類信息。 有關更多信息,請參見此處

Project
|-- pom.xml
`-- src
    `-- main
        |-- java
        `-- resources

要指定其他資源目錄,請參見此處

把它放到pom.xml中:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.1.1</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>

我會間接回答你的問題,如果你已經跳轉到Maven2,我肯定會推薦使用Archetype插件。 使用webapp原型將確保您最終獲得規范的目錄結構。 任何查看您的來源的人都會立即知道所有內容的位置,並且對於文件的位置不會有任何疑問。

在POM.xml中給出以下條目

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.1.1</version>
                <configuration>
                  <!--webappDirectory>/sample/servlet/container/deploy/directory</webappDirectory-->
                  <packagingExcludes>**/web.xml</packagingExcludes>
                </configuration>
            </plugin>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM