Tomcat Maven 插件原型

Tomcat Maven 插件有一个原型,用于通过具体示例展示各种特性。

使用它

使用已发布版本

mvn archetype:generate \
   -DarchetypeGroupId=org.apache.tomcat.maven \
   -DarchetypeArtifactId=tomcat-maven-archetype \
   -DarchetypeVersion=2.2

使用 SNAPSHOT 版本

mvn archetype:generate \
   -DarchetypeGroupId=org.apache.tomcat.maven \
   -DarchetypeArtifactId=tomcat-maven-archetype \
   -DarchetypeVersion=2.2 \
   -DarchetypeRepository=https://repository.apache.org/content/repositories/snapshots/

您将看到以下输出(我们将使用名为 tomcat-sample 的项目)

....
[INFO] Using property: groupId = org.apache.tomcat.maven
Define value for property 'artifactId': : tomcat-sample (project will be created in ./tomcat-sample )
...
cd tomcat-sample

项目详细信息

注意:这是一个复杂的 hello world 示例 :-)

目标是公开一个名为 HelloService 的 REST 服务并在 Web 应用程序中使用它。

@Path( "HelloService" )
public interface HelloService
{
    @Path( "sayHello/{who}" )
    @GET
    @Produces( { MediaType.TEXT_PLAIN } )
    String sayHello( @PathParam( "who" ) String who );
}

Apache Cxf 将用于公开实现作为 REST 服务。

现在,您有一个标准的多模块 Maven 项目布局

  • basic-api(服务接口)
  • basic-api-impl(服务默认实现)。有关 cxf 工作原理的更多详细信息,请查看 Spring 配置文件。
  • basic-webapp(我们的 Webapp 模块)
  • basic-webapp-exec(用于生成可执行 war 的模块)
  • basic-webapp-it(用于使用生成的 war 运行 Selenium 测试的模块)

将插件与项目一起使用

运行 Webapp

在顶级目录中,您可以使用:mvn tomcat6:run 或 mvn tomcat7:run(取决于您想要的 tomcat 版本)。

现在,在浏览器中输入 http://localhost:9090,您将使用一个非常复杂的 hello world Webapp 示例

使用 Selenium 进行集成测试

使用 mvn clean install。默认浏览器是 Firefox,但您可以使用 -Pchrome 或 -Piexplore。

使用可执行 war/jar

现在,您有一个可执行的 jar/war。

试一试

cd basic-webapp-exec/target/
java -jar basic-webapp-exec-1.0-SNAPSHOT-war-exec.jar -httpPort 9191

然后使用浏览器访问 http://localhost:9191。

因此,您现在有一个运行此精彩应用程序的 Tomcat 7 实例,而无需安装任何东西!