我怎样才能让STS解决你在maven配置文件中定义的web.xml的路径?

时间:2015-10-15 14:19:22

标签: java eclipse spring maven spring-tool-suite

我有一个maven项目,它有不同的开发和生产环境。 web.xml中有一些部分需要删除才能进行生产。直到今天,还有一个基于antrunner的xml任务才能完成。现在我想删除脚本部分并引入2个版本的web.xml。基本上,我会将路径“WEB-INF / web.xml”扩展为“WEB-INF / dev / web.xml”。这是在两个配置文件中配置的:

    <profile>
        <id>dev</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <webxml.path>${project.basedir}/src/main/webapp/WEB-INF/dev/WEB.xml</webxml.path>
        </properties>
    </profile>

其他配置文件也是如此,只是路径不同。

稍后,我将使用maven-war-plugin确保maven找到该文件:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.4</version>
        <executions>
            <execution>
                <id>default-war</id>
                <phase>package</phase>
                <goals>
                    <goal>war</goal>
                </goals>
                <configuration>
                    <warSourceDirectory>${project.build.directory}/${project.build.finalName}</warSourceDirectory>
                    <webXml>${webxml.path}</webXml>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                        </manifest>
                    </archive>
                </configuration>
            </execution>
        </executions>
    </plugin>

一切正常,但只要我从命令行构建。 我告诉Spring Tool Suite 3.7使用开发配置文件sadly it somehow refuses to resolve that path进行更新。

当我从上下文菜单中使用“create Descriptor-Stub”时,它甚至会创建一个名为$ {webxml.path}的文件,其中包含默认的web.xml内容。

提供的错误消息是:

  

缺少web.xml,failOnMissingWebXml设置为true

如果可能,我不想禁用该检查(failOnMissingWebXml)。

有没有办法让STS更加渴望解决变量?

更新: 在编写本文时,我发现,在从IDE构建时,可以使用maven-resources插件手动将文件复制到相应的路径。让m2e尊重war-plugin的属性会很棒。或者这根本不可能?构建过程是否由maven本身执行,即使我明确指定了外部版本?

0 个答案:

没有答案