2

我有一个用于 webapp 的 maven 项目,它使用覆盖重新打包战争依赖项。对于两个配置文件testprod,它应该排除demo.jsp文件,但对于其他配置文件,例如local,这个文件应该保留。有没有办法让两个配置文件只有一个配置?我不想为两个配置文件重复一种配置。我目前的解决方案:

<profiles>
    <profile>
        <id>test</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.3</version>
                    <configuration>
                        <overlays>
                            <overlay>
                                <groupId>mygroup</groupId>
                                <artifactId>mywebapp</artifactId>
                                <excludes>
                                    <exclude>demo.jsp</exclude>
                                </excludes>
                            </overlay>
                        </overlays>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
    <profile>
        <id>prod</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.3</version>
                    <configuration>
                        <overlays>
                            <overlay>
                                <groupId>mygroup</groupId>
                                <artifactId>mywebapp</artifactId>
                                <excludes>
                                    <exclude>demo.jsp</exclude>
                                </excludes>
                            </overlay>
                        </overlays>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

编辑:测试产品配置文件是相同的

4

1 回答 1

0

插件管理可以为我们提供以下帮助:-

<build>
    <pluginManagement>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.3</version>
            <configuration>
                <overlays>
                    <overlay>
                        <groupId>mygroup</groupId>
                        <artifactId>mywebapp</artifactId>
                        <excludes>
                            <exclude>demo.jsp</exclude>
                        </excludes>
                    </overlay>
                </overlays>
            </configuration>
        </plugin>
    </pluginManagement>
</build>

那么profiles应该如下: -

<profiles>
    <profile>
        <id>test</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
        ...
    </profile>
    <profile>
        <id>prod</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
        ...
    </profile>
</profiles>    

我希望这可能会有所帮助。

于 2013-04-10T08:27:03.777 回答