簡體   English   中英

Maven:更改WAR結構

[英]Maven: change WAR structure

我有一個要導出為WAR文件的Maven項目。 WAR結構如下所示:

Project_Name.war
            |
            |__ META_INF
            |
            |__ WEB_INF_
                        |
                        |__ lib
                        |
                        |__ classes_
                                    |
                                    |__ project_package(project src code)
                                    |
                                    |__ META_INF
                                    |
                                    |__ WEB_INF_
                                    |           |
                                    |           |__ web.xml
                                    |__ project config files

如您所見,我的項目src代碼位於classes目錄中。 與其相反,我想將我的項目src代碼作為JAR文件包含在我的lib文件夾中。 同樣, web.xml也位於classes文件夾中。 我想把它放到classes文件夾外,即放到WEB_INF里面,以及lib和'classes'。

我總是可以手動執行這兩項操作。

我期望的WAR結構是這樣的:

Project_Name.war
            |
            |__ META_INF
            |
            |__ WEB_INF_
                        |
                        |__ lib_
                        |       |__ Project.jar
                        |
                        |__ classes_
                        |           |
                        |__ web.xml |
                                    |__ project config files

但是我想知道是否可以通過項目的pom.xml 我希望能得到一些資深專家的幫助。 謝謝。

我正在使用maven_war_pluginmvn install命令來構建WAR。

包括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>PROJECT_A</groupId>
    <artifactId>PROJECT_A</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <dependencies>
        .
        .
        .
        .
    </dependencies>
    <build>
        <sourceDirectory>src</sourceDirectory>
        <resources>
            <resource>
                <directory>src</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>config</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <warSourceDirectory>WebContent</warSourceDirectory>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <repositories>
        .
        .
        .
    </repositories>
    <pluginRepositories>
        .
        .
    </pluginRepositories>
</project>

如何在Webapp中創建包含類的JAR?

      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.2.0</version>
        <configuration>
          <archiveClasses>true</archiveClasses>
        </configuration>
      </plugin>

https://maven.apache.org/plugins/maven-war-plugin/faq.html#attached

您可以使用webXml屬性掃描以指定web.xml位置: https ://maven.apache.org/plugins/maven-war-plugin/war-mojo.html#webXml

此外,我建議遵循https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html而不是WebContent。

暫無
暫無

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

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