Jetty端口灵活配置方法,Web开发环境

在使用maven开发web项目极大地方便了jar包的依赖,在测试时也可以集成Servlet容器,从启动速度和量级上看,Jetty无疑是不二选择。

Java Web项目中pom.xml文件初始创建Jetty运行环境

江湖传闻,scala开发的最佳利器乃 JetBrains
的神作 IntelliJ
IDEA
,外加构建工具
sbt
是也。

如果多个项目同时启动,就会端口冲突了。

  1. pom.xml文件编码设置

但因历史原因,项目组成员对
Eclipse
+
Maven
组合更为熟悉,为了快速实现项目原型,不增加不确定因素带来的风险,搭建一套
Eclipse
+
Maven
+
Scala-IDE
的开发环境。

一种办法是通过mvn参数设置端口

<?xml version=”1.0″ encoding=”UTF-8″?>

基本原则是,必须完全满足但不限于以下几点内容:

mvn jetty:run -Djetty.port=8081

  1. 属性设置

方便重构,方便调试,支持热部署。

还有一种办法是通过pom.xml文件设置jetty插件启动端口

 <properties>
        <!– 通用属性 –>
        <java.version>1.6</java.version>
       
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
       
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 
      <!– Jetty 属性, 保证Java web运行环境–>     
      <jetty.version>8.1.9.v20130131</jetty.version>
 </properties>

可直接使用已有maven的本地和私服仓库。

<plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>8.1.15.v20140411</version>
    <configuration>
        <stopKey>stop</stopKey>
        <stopPort>9999</stopPort>
        <scanIntervalSeconds>10</scanIntervalSeconds>
       
<contextXml>${project.basedir}/src/main/resources/jetty-context.xml</contextXml>
        <webApp>
            <contextPath>/</contextPath>
        </webApp>
        <connectors>
            <connector
implementation=”org.eclipse.jetty.server.nio.SelectChannelConnector”>
                <port>8081</port>
                <maxIdleTime>60000</maxIdleTime>
            </connector>
        </connectors>
    </configuration>
</plugin>

  1. 依赖设置

可以无束缚的只用自己熟悉的语言编写代码。

重要的是加上<contextXml>配置,我们要对jetty的服务器属性进行配置。本例中把配置文件放到了/src/main/resources中(如果你不希望打包时带上这个文件,可以放到/src/test/resources中,改下配置即可),文件名为:jetty-context.xml。接下来是配置文件:

<dependencies>
                <!– jetty –>
        <dependency>
            <groupId>org.eclipse.jetty.aggregate</groupId>
            <artifactId>jetty-webapp</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-jsp</artifactId>
            <version>${jetty.version}</version>
            <scope>test</scope>
        </dependency>
</dependencies>

可以快速混合编译scala+java代码,包括交叉引用的文件。

<?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE Configure PUBLIC “-//Mort Bay Consulting//DTD
Configure//EN” “;
<Configure class=”org.eclipse.jetty.webapp.WebAppContext”>
    <Call name=”setAttribute”>
       
<Arg>org.eclipse.jetty.server.webapp.WebInfIncludeJarPattern</Arg>
       
<Arg>.*/.*jsp-api-[^/]\.jar$|./.*jsp-[^/]\.jar$|./.*taglibs[^/]*\.jar$</Arg>
    </Call>
</Configure>

4.  运行插件设置

如果你有洁癖,可以自己下载
Eclipse
,然后安装各种插件。但是可能会遇到插件依赖包版本冲突之类的问题,为了速度,我直接下载官方打包好的
Scala-IDE
,有各种平台可供选择。

Jetty服务器的安装配置详解
http://www.linuxidc.com/Linux/2015-09/123299.htm

<build>
        <plugins>
            <!– jetty插件, 设定context path与spring profile –>
            <plugin>
                <groupId>org.mortbay.jetty</groupId>
               
<artifactId>jetty-maven-plugin</artifactId>
                <version>${jetty.version}</version>
                <configuration>
                    <systemProperties>
                        <systemProperty>
                           
<name>spring.profiles.active</name>
                            <value>development</value>
                        </systemProperty>
                    </systemProperties>
                   
<useTestClasspath>true</useTestClasspath>
                    <webAppConfig>
                       
<contextPath>/${project.artifactId}</contextPath>
                    </webAppConfig>
                </configuration>
            </plugin>
        </plugins>
</build>

使用
Git
管理项目源代码,需要安装
EGit
插件,Eclipse插件更新地址 EGit
Updates

使用Jetty作为嵌入式服务器
http://www.linuxidc.com/Linux/2013-07/86983.htm

使用Jetty作为嵌入式服务器
http://www.linuxidc.com/Linux/2013-07/86983.htm

假设项目名称为 feeling ,使用 JDK 1.7,Servlet 3.0,最终目录结构如下。

Jetty 源码分析
http://www.linuxidc.com/Linux/2013-10/90986.htm

Jetty 源码分析
http://www.linuxidc.com/Linux/2013-10/90986.htm

.
├── .settings                    #eclipse工程目录
├── .classpath                  #eclipse classpath文件
├── .project                    #eclipse project文件
├── src                          #源代码
|  ├── main                    #源代码主目录
|  |  ├── java                #java代码
|  |  ├── scala                #scala代码
|  |  ├── resources            #资源文件
|  |  └── webapp              #web主目录
|  |      ├── WEB-INF          #WEB-INF目录
|  |      |  └── web.xml      #web.xml文件
|  |      └── index.jsp        #主页面
|  └── test                    #测试代码
|      ├── java                #java测试代码
|      ├── scala                #scala测试代码
|      └── resources            #测试资源文件
├── .gitignore                  #git忽略配置
├── target                      #编译输出目录
├── README.md                    #markdown格式的说明文件
└── pom.xml                      #maven的pom文件

Jetty安装学习并展示
http://www.linuxidc.com/Linux/2014-05/101993.htm

Jetty安装学习并展示
http://www.linuxidc.com/Linux/2014-05/101993.htm

pom.xml文件

Jetty在Eclipse中的安装
http://www.linuxidc.com/Linux/2013-10/90991.htm

Jetty在Eclipse中的安装
http://www.linuxidc.com/Linux/2013-10/90991.htm

<project xmlns=””
xmlns:xsi=””
  xsi:schemaLocation=”
;
  <modelVersion>4.0.0</modelVersion>
  <groupId>feeling</groupId>
  <artifactId>feeling</artifactId>
  <version>0.0.1</version>
  <packaging>war</packaging>

Linux(RedHat 5.8)下
安装Jetty 部署 使用 
http://www.linuxidc.com/Linux/2014-10/108342.htm

Jetty
的详细介绍
:请点这里
Jetty
的下载地址
:请点这里

  <!– <name>${project.artifactId}</name> –>
  <name>feeling</name>
  <description>our wonderfully feeling
application</description>
  <url>;
  <inceptionYear>2014</inceptionYear>

Jetty
的详细介绍
:请点这里
Jetty
的下载地址
:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-10/108428.htm

  <organization>
    <name>feeling</name>
    <url>;
  </organization>

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-11/137047.htm

图片 1

  <licenses>
    <license>
      <name>The Apache Software License, Version
2.0</name>
     
<url>;
      <distribution>repo</distribution>
    </license>
  </licenses>

图片 2

  <developers>
    <developer>
      <id>bruce</id>
      <name>bruce sha</name>
      <url>;
      <email>bu.ru@qq.com</email>
    </developer>
  </developers>

  <scm>
 
 <connection>;
 
 <developerConnection>;
   <url>;
  </scm>

  <properties>
    <scala.version>2.10.3</scala.version>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
    <encoding>UTF-8</encoding>
  </properties>

  <!– 个性化开发 –>
  <profiles>
    <profile>
      <id>dev</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <build.param>this is dev</build.param>
      </properties>
    </profile>
    <profile>
      <id>release</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <build.param>this is relase</build.param>
      </properties>
    </profile>
  </profiles>