【问题标题】:Maven war plugin: archiveClasses without archiving resourcesMaven 战争插件:没有归档资源的归档类
【发布时间】:2011-10-07 16:36:25
【问题描述】:

maven-war-plugin 中有一个archiveClasses 选项,它将所有类打包在一个 .jar 中,然后在 lib/ 文件夹中创建带有该 jar 的 .war 文件。

我也需要这样做,但将资源文件保留在 classes 目录中,以便它们仍然可以从 classpath 访问但易于修改。

最简单的方法是什么?

【问题讨论】:

    标签: java resources maven war


    【解决方案1】:

    您应该能够指定这些资源的位置。它通常在 src/main/resources 中查找资源,但如果您在 java 源代码树中需要它们,您可以尝试:

    <resources>
        <resource>
            <directory>${basedir}/src/main/java</directory>
            <filtering>true</filtering>
            <includes>
                <include>*.xml</include>                
            </includes>
        </resource>
    </resources>
    

    【讨论】:

    • 不,不。它们正好在 src/main/resources 中,但我只想将它们打包到 .war 文件中的 classes/ 目录中,而 Java .class 文件应该在 lib/ 目录中的 .jar 中。
    【解决方案2】:

    也许您可以尝试将您的资源文件夹配置为 WebResource 插件配置。

    <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.2</version>
        <configuration>
            <archiveClasses>true</archiveClasses>
            <webResources>
                <resource>
                    <directory>src/main/resources</directory>
                    <targetPath>WEB-INF/classes</targetPath>
                    <filtering>true</filtering>
                </resource>
            </webResources>
        </configuration>
    </plugin>
    

    【讨论】:

    • 它可以工作,但资源也在一个 jar 中重复。
    【解决方案3】:

    你可以这样做来解决问题:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.4</version>
        <configuration>
            <warName>${project.war.name}</warName>
            <warSourceExcludes>**/*.class</warSourceExcludes>
            <archiveClasses>true</archiveClasses>
        </configuration>
    </plugin>
    

    【讨论】:

      【解决方案4】:

      单行答案:maven-war-plugin 中没有提供用于从使用archiveClasses 标志创建的 jar 中排除资源的选项。

      解决此问题的可能且最简单的解决方法是将src/main/java/resources 目录下的文件移动到src/main/java/webapp/WEB-INF/classes 目录。

      【讨论】:

        猜你喜欢
        • 2012-03-29
        • 2017-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-12
        • 1970-01-01
        • 2019-01-27
        相关资源
        最近更新 更多