如何避免maven配置文件重复

时间:2013-04-10 08:16:46

标签: maven dry

我有一个关于webapp的maven项目,它使用叠加重新打包战争依赖。对于两个配置文件 test prod ,它应该排除 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>

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

1 个答案:

答案 0 :(得分:0)

Plugin Management可能会对我们有所帮助: -

<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>    

我希望这可能有所帮助。