maven将web项目生成jar包

首先说一下我的应用场景

  • 由于项目需求,我们需要写一个本地的webservice,所以我就选择了jettey搭配jersey来进行开发。
  • 选用jettey内嵌式启动的方法,在main()函数中进行服务器的启动。
  • 将项目达成jar包,通过java -jar 命令直接启动webservice,注意要指定jar包的执行入口函数
我们只需要在maven的pom.xml文件中加入maven-jar的插件
 
        org.apache.maven.plugins
        maven-jar-plugin
        2.4
        
          true
          
            
              com.gmobile.JettyServer
              true
              lib/
            
          
        
      

其中com.gmobile.JettyServer指定jar包执行的main函数,然后直接在项目目录下执行 maven clean package即可将项目达成jar包。由于我的jar包是一个webservice,打包好之后执行java -jar命令

maven将web项目生成jar包_第1张图片
1490158321(1).png

在浏览器输入我的web访问路径:http://localhost:8080/hello
即可成功显示

maven将web项目生成jar包_第2张图片
1490158079(1).png

#######以下是我的jar包的main函数:

public class JettyServer {

    private void start() throws Exception {
        int port = 8080;
        Server server = new Server(port);
        ServletContextHandler context = new ServletContextHandler(
                ServletContextHandler.SESSIONS);
        context.setContextPath("/");
        server.setHandler(context);
        ServletHolder sh = new ServletHolder(ServletContainer.class);
        sh.setInitParameter(
                "com.sun.jersey.config.property.resourceConfigClass",
                "com.sun.jersey.api.core.PackagesResourceConfig");
        sh.setInitParameter("com.sun.jersey.config.property.packages",
                "com.gmobile.api");
        context.addServlet(sh, "/*");
        server.start();
    }

    public void stop() throws Exception {

    }

    public static void main(String[] args) throws Exception {
        JettyServer server = new JettyServer();
        server.start();
    }
}

你可能感兴趣的:(maven将web项目生成jar包)