我使用的是在JSP上的资源过滤,基于配置文件。 我也在开发本地使用mvn jetty:run
,但过滤阶段不会运行。
我怎样才能进行使用码头插件过滤?
配置片段 :
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<webResources>
<resource>
<directory>src/main/webapp</directory>
<includes>
<include>error.jsp</include>
</includes>
<filtering>true</filtering>
<targetPath>/</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
<profile>
<id>jci</id>
<activation>
<activeByDefault>true</activeByDefault>
<property>
<name>jci</name>
</property>
</activation>
<properties>
<error.title>Some value here</error.title>
</properties>
</profile>
您可能需要使用码头:运行爆炸的目标,而不是码头:运行。 从文档 :
这个目标首先装配你的web应用到爆炸war文件,然后将其部署到码头。
这可确保服务器启动之前适当的战争生命周期阶段来执行。
同时你肯定JCI的轮廓正被激活? 如果构建指定另一个配置文件,在<activeByDefault>属性不会启用的配置,看到这个错误的详细信息。
从约翰·凯西的回应:
上面的例子是事先设计好的。 在<activeByDefault />元素是指指定,如果没有其他的配置文件是在生成活性此配置文件将被激活。 因此,任何个人资料的具体激活将导致此一个被停用。
过滤后的文件通常在构建目标目录中结束。 如果你运行“命令mvn码头:运行”它每默认你的未经过滤的src / main / webapp目录使用。 所有你要做的就是构建目标添加额外的资源目录。 这样做,码头将创建一个覆盖,也将使用过滤的文件。
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.26</version>
<configuration>
<webAppConfig>
<contextPath>/${project.build.finalName}</contextPath>
<baseResource implementation="org.mortbay.resource.ResourceCollection">
<resourcesAsCSV>src/main/webapp,${project.build.directory}/${project.build.finalName}</resourcesAsCSV>
</baseResource>
</webAppConfig>
<scanIntervalSeconds>2</scanIntervalSeconds>
</configuration>
</plugin>
由于@Randy我设法得到这个工作了。 下面有一个到表示两个资源滤波和码头使用org.eclipse.jetty而不是早期mortbay衍合baseResource日期的例子。 在这里,我们正在筛选两个JSP页面的login.jsp和index.jsp和设置变量“$ {} login.resources”在JSP为“login.res.jsp”按下面的属性部分。 请注意,我们筛选并将它们写入“jetty.docroot”,那么,我们在覆盖的src /主/ web应用jetty.docroot所以我们的过滤JSP的习惯的码头。 叠加从@Randy更新为使用新的“org.eclipse.jetty.util.resource.ResourceCollection”执行。
<profiles>
<profile>
<id>jetty</id>
<properties>
<jetty.docroot>${project.build.directory}/jetty</jetty.docroot>
<login.resources>login.res.jsp</login.resources>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
<executions>
<execution>
<id>jetty-docroot</id>
<!-- test-compile precedes jetty:run -->
<phase>test-compile</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${jetty.docroot}</outputDirectory>
<resources>
<resource>
<directory>${basedir}/src/main/webapp</directory>
<filtering>true</filtering>
<includes>
<include>**/login.jsp</include>
<include>**/index.jsp</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.0.v20161208</version>
<configuration>
<scanIntervalSeconds>2</scanIntervalSeconds>
<webApp>
<contextPath>/intamerge</contextPath>
<baseResource implementation="org.eclipse.jetty.util.resource.ResourceCollection">
<resourcesAsCSV>${jetty.docroot},${basedir}/src/main/webapp</resourcesAsCSV>
</baseResource>
<baseAppFirst>false</baseAppFirst>
</webApp>
</configuration>
</plugin>
</plugins>
</build>
</profile>