2

我正在使用mvn clean install -Dlifecycle=dev. 所以我有变量lifecycle

现在我的要求是,当我为其创建构建文件时,UAT/PROD它必须jsp(index.jsp)从包中排除一个。我的 jsp 位于与资源平行的 webApps 目录中。

我认为profile仅用于一页过滤并不是一个好主意。

感谢任何帮助。

4

1 回答 1

3

它从一个 JSP 开始。接下来是自定义的 CSS。然后不同的数据库属性...

个人资料是要走的路。只需创建一个,将其激活设置为变量的值,使用 JSP 创建另一个源文件夹并将其添加到配置文件中的资源中。

所以:

  • 在您的项目文件夹中创建一个文件src/dev/webapp夹(因此它与 平行src/main/webapp
  • 向您添加pom.xml配置战争插件的配置文件

 

<profiles>
    <profile>
        <activation>
            <property>
                <name>lifecycle</name>
                <value>dev</value>
            </property>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <webResources>
                            <resource>
                                <directory>src/dev/webapp</directory>
                            </resource>
                        </webResources>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

当变量设置为时,这会将资源从src/dev/webapps合并的目标文件夹复制到。lifecycledev

即使这些是用于复制单个文件的相当多的 XML 行,我认为在使用 Maven 时使用不同的方式(例如使用删除文件的插件)也不是一个好主意。虽然您可以自定义 Maven 构建以使其不再可识别,但整个想法是使用约定,以便其他人可以轻松阅读该过程。

于 2012-08-08T12:25:32.400 回答