2

(行家 2.2.1 )

你好,我有这个目录树:

.
├── pom.xml
├── src
│   ├── main
│   │   └── webapp
│   │       ├── META-INF
│   │       ├── **resources**
│   │       │   ├── **bootstrap**
│   │       │   │   ├── **bootstrap**
│   │       │   │   │   ├── css
│   │       │   │   │   ├── img
│   │       │   │   │   └── js
│   │       │   │   ├── docs
│   │       │   │   ├── img
│   │       │   │   ├── js
│   │       │   │   ├── less
│   │       │   │   ├── LICENSE
│   │       │   │   ├── Makefile
│   │       │   │   ├── package.json
│   │       │   │   └── README.md
│   │       │   ├── cms
│   │       │   └── **static**
│   │       │       ├── css
│   │       │       ├── feeds
│   │       │       ├── img
│   │       │       ├── js
│   │       │       └── less
│   │       ├── WEB-INF

我用双 * 突出显示有趣的目录...

在打包时,我试图resources/bootstrap从最终的 WAR中排除复制resources/bootstrap/boostrapresources/static.

换句话说,我需要获得以下内容:

.
│   │       ├── META-INF
│   │       ├── **resources**
│   │       │   ├── cms
│   │       │   └── **static**
│   │       │       ├── **bootstrap**
│   │       │       │   ├── css
│   │       │       │   ├── img
│   │       │       │   └── js
│   │       │       ├── css
│   │       │       ├── feeds
│   │       │       ├── img
│   │       │       ├── js
│   │       │       └── less
│   │       ├── WEB-INF

我很不幸地搞砸了,maven-war-plugin但我仍然无法获得想要的结果。

这是我的 pom 相关部分的最新版本:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <packagingExcludes>WEB-INF/**.tld</packagingExcludes>
        <warSourceExcludes>resources/bootstrap</warSourceExcludes>
        <webResources>
            <resource>
                <!-- this is relative to the pom.xml directory -->
                <directory>src/main/webapp/resources/bootstrap</directory>
                <!-- override the destination directory for this resource -->
                <targetPath>resources/static</targetPath>
                <includes>
                    <include>bootstrap/**</include>
                </includes>
            </resource>
        </webResources>                 
    </configuration>
</plugin>

预先感谢您提供任何后续提示!

4

1 回答 1

2

你很亲近;您需要指定resources/bootstrap/**参数warSourcesExcludes以省略整个树(目录及其所有子目录)。仅排除resources/bootstrap目录不会做任何事情,因为它仍然包含该目录的所有子目录,当它复制子目录并且父目录不存在时会自动创建目录。

所以你的配置应该有:

    <configuration>
        ...
        <warSourceExcludes>resources/bootstrap/**</warSourceExcludes>
        ...
    </configuration>

并且不要忘记clean在再次打包战争之前运行一个 Maven。

于 2012-05-30T15:20:01.337 回答