使用maven对jsp进行预编译

         尽管很多servlet容器例如tomcat、jetty等为了提升jsp第一次访问的性能,都提供了jsp的预编译功能:

        

                   来源:http://www.jz123.cn/text/1228321.html

 

但是对于上线前验证或者持续集成的需求来说,很有必要提供一个能够手动或者命令行对jsp文件进行编译检查的方法,考虑到持续集成的便利性,我们使用maven及其插件解决这一问题。

首先从maven官网下载安装包并解压到本机目录,添加系统环境变量“MAVEN_HOME”指向解压目录,并将“%MAVEN_HOME%/bin”添加到系统%path%环境变量下。

开始通过下面方式创建一个java web项目“mvnarchetype:create -DgroupId=com.testweb -DartifactId=TestWebProject-DarchetypeArtifactId=maven-archetype-webapp”,我最开始在这里折腾了很久,因为我没有明白“maven Archetype”的含义,建了一个” quickstart”类型的项目,然后对maven视src中的jsp文件如无物非常迷惑。Archetype的详细列表参见:https://maven.apache.org/guides/introduction/introduction-to-archetypes.html

在执行这个命令行的时候,你同时可能遇到各种问题,因为maven安装包实际提供你的是一个最小可用的包,而你在实际项目中需要用到大量依赖的插件,这都是需要从其中央仓库在线下载的,因为我没有自己的仓库(可以用nexus搭建自己的中央仓库,而且如果实际项目中要用maven的话也一定要搭建自己的中央仓库),所以光下载这些依赖的插件就用了两天……,当然网络上还有一些公共的仓库地址也可以试试:http://tianya23.blog.51cto.com/1081650/386908

当你下载完所需的插件后,提示项目创建成功,并且在”%USERPROFILE%\.m2”下保存了所下载的maven插件,下次使用直接从本地仓库而非中央仓库获取。而如果要使用其他仓库,则需要修改该目录下的settings.xml。

接下来重要的事情就是进入创建的maven项目下,修改下面的的pom.xml,加入对jspc插件使用,在build节点下,finalName节点后加入如下节点信息:

<plugins>

                            <!-- begin - precompiling jsps -->

                            <plugin>

                                     <groupId>org.codehaus.mojo</groupId>

                                     <artifactId>jspc-maven-plugin</artifactId>

               <version>1.4.6</version>

                                     <executions>

                                               <execution>

                                                        <id>jspc</id>

                                                        <goals>

                                                                 <goal>compile</goal>

                                                        </goals>

                                               </execution>

                                     </executions>

                            </plugin>

                            <plugin>

                                     <groupId>org.apache.maven.plugins</groupId>

                                     <artifactId>maven-war-plugin</artifactId>

               <version>2.4</version>

                                     <configuration>

                                               <webXml>${basedir}/target/jspweb.xml</webXml>

                                     </configuration>

                            </plugin>

                            <!-- end -precompiling jsps -->

</plugins>

         这里详细参见:http://www.avajava.com/tutorials/lessons/how-do-i-precompile-my-jsps.html?page=1,但是有一个注意的地方是,每个插件节点下,都需要添加<version>的节点描述信息,否则在后面运行时会出现如下警告信息。

         上面这篇文章中还加入了其他节点信息用于生成web.xml中的信息:

<!-- begin - deploying/undeploying toTomcat -->

                            <plugin>

                                     <groupId>org.codehaus.mojo</groupId>

                                     <artifactId>tomcat-maven-plugin</artifactId>

               <version>1.1</version>

                                     <configuration>

                                               <url>http://192.168.1.7:8080/manager</url>

                                               <server>mytomcat</server>

                                               <path>/mywebapp</path>

                                     </configuration>

                            </plugin>

                            <!--end - deploying/undeploying to Tomcat -->

                            <!--begin - compiling project to a particular version of java -->

                            <plugin>

                                     <groupId>org.apache.maven.plugins</groupId>

                                     <artifactId>maven-compiler-plugin</artifactId>

               <version>2.3.2</version>

                                     <configuration>

                                               <source>1.6</source>

                                               <target>1.6</target>

                                     </configuration>

                            </plugin>

                            <!--end - compiling project to a particular version of java -->

                            <!--begin - setting classpath to use an Eclipse user library for Tomcat (foreclipse:eclipse) -->

                            <plugin>

                                     <groupId>org.apache.maven.plugins</groupId>

                                     <artifactId>maven-eclipse-plugin</artifactId>

               <version>2.9</version>

                                     <inherited>true</inherited>

                                     <configuration>

                                               <classpathContainers>

                                                        <classpathContainer>org.eclipse.jdt.launching.JRE_CONTAINER</classpathContainer>

                                                        <classpathContainer>org.eclipse.jdt.USER_LIBRARY/TOMCAT_6.0.14_LIBRARY</classpathContainer>

                                               </classpathContainers>

                                     </configuration>

                            </plugin>

                            <!--end - setting classpath to use an Eclipse user library for Tomcat (foreclipse:eclipse) -->

 

         修改完pom.xml之后,将需要检查的jsp文件放到mvn项目的”\src\main\webapp\文件夹下,用“mvn test”或者”mvn package”命令行即可检查出jsp是否存在错误。

         maven项目的目录结构可以参考:http://www.cnblogs.com/haippy/archive/2012/07/05/2577233.html

         执行上述命令行的时候实际上还有点疑问是在使用”mvn compile“命令行时并没有对jsp文件进行编译,而从maven的生命周期阶段示意以及pom.xml中goal的设定来看,应该是可行的……

         如此项目中的jsp文件错误信息如下:


           通过该实践,maven体现出了淋漓尽致的”约定优于配置“的开发原则,没有纷繁复杂的配置项,有的则是对于其配置的遵守以及遵守之后的便利。

         更多maven资料,可以查看”Maven权威指南中文版”。

### 回答1: 要在Maven项目中使用JSP,需要在pom.xml文件中添加JSP依赖项。 以下是添加JSP依赖项的步骤: 1. 打开pom.xml文件 2. 在<dependencies></dependencies>标签之间添加以下代码: ``` <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.1</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> ``` 3. 保存pom.xml文件 这些依赖项将JSP API和JSTL库添加到项目中。现在就可以在Maven项目中使用JSP了。 ### 回答2: 在Maven中导入JSP库,你需要遵循以下步骤: 1. 打开你的Maven项目,并确保你已经正确配置了pom.xml文件。 2. 在pom.xml文件中,找到`<dependencies>`标签,它位于`<project>`标签内。如果你没有该标签,可以手动添加它。 3. 在`<dependencies>`标签中,添加以下代码,以导入JSP库: ``` <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> ``` 4. 将以上代码添加到`<dependencies>`标签中后,保存pom.xml文件。 5. Maven会自动解析并下载所需的JSP库,这取决于你的互联网连接速度和Maven配置。 6. 一旦下载完成,你就可以在你的Maven项目中使用JSP库了。 请注意,以上代码仅适用于jstl版本1.2,如果你需要不同的版本,你需要相应地更改`<version>`标签的值。 如果你遇到Maven下载依赖项的问题,请确保你的Maven配置正确,并检查你的互联网连接,确保你可以正常访问Maven中央仓库。 ### 回答3: 要在Maven中导入JSP库,你需要在你的项目的pom.xml文件中添加相应的依赖项。首先,打开你的pom.xml文件,并在<dependencies>标签之间添加以下代码: ```xml <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> <scope>provided</scope> </dependency> ``` 这样,你就成功地导入了JSP库。为了实现JSP的功能,我们需要导入两个依赖项。第一个是jstl,它提供了标签库和函数库,可以方便地在JSP页面中使用。第二个是jsp-api,它是JSP的核心API,可以让你在编写JSP页面时使用JSP标记语言和其他相关功能。 注意,对于jsp-api依赖项,我们将<scope>设置为"provided"。这意味着该依赖项应该由你的应用服务器提供,而不是由Maven来管理。大多数JavaEE服务器都会提供jsp-api,因此我们只需要在开发阶段将其包含在编译路径中。 一旦添加了这些依赖项,Maven会自动下载并管理它们的相关库文件。如果你的项目中没有pom.xml文件,你需要创建一个,并将上述代码添加到其中。完成后,保存并重新构建你的项目,就可以开始使用JSP库了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值