2015-05-18 161 views
0

我手上有一个情况我有我的客户的服务器上没有互联网连接(因为它是一个网内服务器),我有部署上我的春节,启动应用程序它使用Maven构建。问题是,由于安全原因,我不允许将服务器连接到互联网,但我可以在我的开发机器上访问互联网。所以我有两个问题:部署Maven的春季启动项目的服务器离线

  • 如何获得有问题的服务器上的所有依赖关系?我可以以某种方式将下载的文件从我的开发机器复制到服务器上?如果是这样,怎么样?

  • 我需要配置Apache Tomcat或我应该只是运行在命令行war文件?什么是最佳实践?

+1

首先*使罐子不是战争*(尤其是春季引导我要说,并在这里引用了良好的乔什长)。也可以在你的机器上构建工件(或者构建服务器),并简单地将jar复制到服务器上,执行'java -jar your.jar',就是这样。 –

+0

@ M.Deinum听起来很有趣。你能详细说明一下(我的意思是在我的机器上构建神器)并将其作为答案发布? :) – shyam

+0

只是在有互联网访问权的开发/ CI机器上构建您的应用程序,并将最终的jar/war部署到客户端的服务器。客户端的服务器上不需要Maven。 – sodik

回答

0

最好是制作一个jar文件,而不是制作战争文件。这应该会帮助你在没有Tomcat的情况下运行,因为它嵌入了一个Web服务器。当你做一个Maven构建

依赖性都挤满了瓶子里。你需要有一个互联网连接来建立它。将jar复制到生产环境并运行。

-1

Here是striaght向前例如Tomcat服务器

上部署弹簧引导应用按照实施例和添加一个的tomcat6/tomcat7插件

  <!-- Tomcat 6 plugin --> 
      <plugin> 
       <groupId>org.apache.tomcat.maven</groupId> 
       <artifactId>tomcat6-maven-plugin</artifactId> 
       <configuration> 
        <url>${serverUrl}:${port}/manager</url> 
        <path>/${contextpath}</path> 
        <username>${username}</username> 
        <password>${password}</password> 
       </configuration> 
      </plugin> 

插件属性如下

<properties> 
     <!-- Server Details --> 
     <serverUrl>http://kpServer</serverUrl> 
     <port>8080</port> 
     <contextpath>kp-cxf</contextpath> 
     <username>admin</username> 
     <password></password> 

     <!-- Skip test execution during default steps --> 
     <skipTests>true</skipTests> 
    </properties> 

你也可以使用mvn tomcat6:redeploy COMM并部署到您的服务器(在岸上maven下载从互联网到你的开发服务器的插件/依赖项,当你运行mvn tomcat6时:deploy/package通过从本地maven目录中取出jar来创建战争)

+0

如果我将整个东西打包为一个jar文件,我需要添加tomcat插件吗?如果存在JDK,AFAIK Spring Boot项目可以打包为jar文件广告运行。 – shyam

+0

Tomcat插件添加的优势,在一个命令就可以部署,否则你需要将战争复制到Tomcat服务器手动webapps目录。也不是tomcat6和tomcat7有不同的插件,通过链接,它解释了遵循变化包装到战争的步骤数量,添加修改入口点,以启用servlet初始化,通讯弹出启动插件等 –

+0

我已经转换包装到jar,但后来根据M.Deinum早些时候的评论恢复:http://stackoverflow.com/questions/30295206/deploying-a-maven-spring-boot-project-on-a-server-offline/30297349? noredirect = 1#comment48687299_30295206 – shyam