2015-05-18 108 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