【问题标题】:Keeping only .class and .properties file in WEB-INF/classes folder在 WEB-INF/classes 文件夹中只保留 .class 和 .properties 文件
【发布时间】:2013-03-02 12:34:09
【问题描述】:

我正在将我当前的 java EE 项目移植到 maven。我正在研究由 maven 创建的战争的文件夹结构,不知何故卡住了。

Maven 复制我在 webapps 中的所有文件,包括 WEB-INF/classes 文件夹中的 .css、.js 等。我为他们保留了不同的文件夹资源,并且只想将 .class 和 .properties 文件复制到 classes 文件夹中。

有什么想法可以实现吗?

-- 添加更多数据--

使用

 <webResources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<targetPath>resources</targetPath>
<includes>
<include>**/*.*</include>
</includes>
</resource>
 </webResources>

在我的战争中创建一个资源文件夹并将所有这些文件保存在资源文件夹中,但不知何故,它们的副本也在 WEB-INF/classes 中创建

【问题讨论】:

  • 你的 .css 和 .js 资源在你的目录结构中的什么位置?
  • 它们位于 src\main\resources 中

标签: jakarta-ee maven


【解决方案1】:

您可以配置maven-war-plugin 以从打包中排除某些文件。检查documentation

但是,通常您将 Web 资源保存在应用程序的 webapp 目录中的类路径之外(因此不在 src/main/resources 中)。

资源被复制到classes 目录中,因为src/main/resources 旨在接收您希望在类路径中可用的文件(properties 文件、xml 配置文件等)。

【讨论】:

    【解决方案2】:

    正如@benzonico 所提到的,您应该将您的webapp 资源保存在src/main/webapp 而不是src/main/resources。如果您无法更改,您可以添加类似于以下内容的内容,以排除 jscss 文件被复制到类文件夹。

     <build>
        ...
        <resources>
          <resource>
            <directory>src/main/resources</directory>
            <excludes>
              <exclude>*.css</exclude>
              <exclude>*.js</exclude>
            </excludes>
          </resource>
          ...
        </resources>
        ...
      </build>
    

    【讨论】:

      猜你喜欢
      • 2016-10-02
      • 1970-01-01
      • 1970-01-01
      • 2012-11-18
      • 2015-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-15
      相关资源
      最近更新 更多