我的java 服務器端項目

我做的是java服務器端項目,對整個項目部署的一些情況和方法記錄在此,如果網友有好的推薦,還望發文與我參考學習。

前提:1.是maven項目。2.服務器端程序已經寫好,可以打包成jar到服務器用dos窗口運行。

爲了方便維護,做了進一步的改善:


最終達到的效果就是,發佈代碼簡化成兩個步驟:1.上傳SVN提交最新代碼,2.打開持續集成環境Jenkins,選擇項目運行。

通過以上兩步,最新版本程序自動更新到服務器端,並自動完成卸載舊版本服務,生成新版本服務,啓動新服務。


分兩大步進行改進:

1.做成windows服務,可隨機器開機自啓動

參考網友的方法,也經過自己親自使用過,做了自己的一些總結。

利用打包工具wrapper,注意區分32和64位系統:
以下都是在java環境變量正常的情況下進行的

一、64位系統請在“wrapper-windows-x86-64-3.5.25-st”下進行打包

一定要注意這裏:如果你64位系統的wrapper包不是64位破解版本,就只能用收費的了,用32位版本是不行的,wrapper目前只有32位免費版本,不知道64免費版本會不會出來。
需要打包的程序一般分5個目錄,application, bin, conf, lib, logs,如我需要打包應用程序PlanManager-1.0.jar
首先在wrapper-windows-x86-64-3.5.25-st目錄下新建文件夾PlanManager,再在PlanManager下新建以上5個目錄。
wrapper64位系統沒有免費版本,該版本是破解版,目前穩定性未知

1、application:放需要打包的程序

2、bin:從wrapper解壓包中“..\src\bin”拷貝所有的.bat.in文件放到自建的PlanManager\bin下,並將.bat.in文件都改成.bat文件。再從wrapper解壓包中“..\bin”拷貝wrapper.exe到PlanManager\application。該目錄還放自己開發的應用程序本身所需要的配置文件,如日誌配置文件等

3、conf:最重要的配置文件wrapper.conf,還有一個wrapper-license.conf(如果下載的是“wrapper-windows-x86-64-3.5.25-st”破解版本,該文件請不要做任何改動)

4、lib:除了wrapper自身的wrapper.dll和wrapper.jar,還可以存放應用程序需要的一些jar文件,配置wrapper.conf的時候記得加上,本文是maven項目,lib都是maven依賴的,所以沒有配lib。

5、logs:wrapper自身的日誌記錄


二、32位系統請在“wrapper-windows-x86-32-3.5.27”下進行打包

http://wrapper.tanukisoftware.com/doc/english/download.jsp,官上很清楚,顯示版本爲Community的爲免費版本,其他版本都收費。
用法和64位的一樣,只是conf裏不需要license文件,32位用免費版本。


三、wrapper.conf的配置說明

以下對一些主要的屬性進行說明,也沒有深入研究,

1、找到wrapper.java.classpath.1=../lib/wrapper.jar處,指定應用程序
添加:wrapper.java.classpath.2=../application/PlanManager-1.0.jar

2、找到Log file to use for wrapper output logging.
wrapper.logfile=../logs/wrapper.log

3、找到Initial Java Heap Size (in MB),指定最小內存和最大內存
添加:wrapper.java.initmemory=3
添加:wrapper.java.maxmemory=100

4、找到Application parameters,指定mian函數所在的類,要包括包名
添加:wrapper.app.parameter.1=com.PlanManager

5、其他就是一些命名了
wrapper.console.title=PlanManager
wrapper.name=PlanManager
wrapper.displayname=MosPlanManager Service
wrapper.description=MosPlanManager Service

從上面配置日誌、應用程序存放位置來看,其實很容易知道目錄都是可以自己配的。


運行PlanManager\bin下面的bat文件,你就會發現相應好多功能都有了,最常的有兩個安裝:InstallApp-NT.bat,卸載:UninstallApp-NT.bat,如果要檢查你的jar包有沒有問題,你還可以直接運行該目錄下的App.bat,這個表示直接執行自己的jar程序,首先要保證這個執行沒問題。如果出錯去看日誌../logs/wrapper.log


2.代碼修改後,上傳SVN,直接運行集成環境就可以發佈新版本。持續集成環境Jenkins


我這裏持續集成環境Jenkins是老大搭建的,去百度上查下方法應該不難,這裏主要記錄些配置

在JenKins上新建一個maven項目,要保證最新代碼提交SVN後,這裏運行正常,並能夠在Jenkins目錄下自己的項目目錄找到生成的應用程序jar包。

1.源碼管理項:Subversion

2.構建環境項:Post Steps->Add post-build step->Execute Windows batch command,我一共建了4個

第一個框Execute Windows batch command功能先找到服務器端目錄PlanManager\bin,然後執行卸載服務處理

填入 cd D:\Server\run\PlanManager\bin
UninstallPlanManager.bat

注意,這裏是卸載了程序服務,所以做一次更新時,要確保不影響正常運營。

第二個框Execute Windows batch command功能把用Jenkins運行生成的jar包拷貝到要做成windows服務的應用程序目錄:

填入copy D:\CI\jenkins_home\jobs\PlanManager\workspace\target\PlanManager-1.0.jar D:\Server\run\PlanManager\application\ /y

第三個框Execute Windows batch command功能先找到服務器端目錄PlanManager\bin,然後執行安裝服務處理

cd D:\Server\run\PlanManager\bin
InstallPlanManager.bat

第四個框Execute Windows batch command功能先找到服務器端目錄PlanManager\bin,然後執行啓動服務處理

cd D:\Server\run\PlanManager\bin
StartPlanManager.bat


注意:

這裏再記錄下maven項目pom.xml的配置需要:

爲了讓Jenkins生成的是自己想要的名稱和版本號PlanManager-1.0.jar:我的項目設置是

  <artifactId>PlanManager</artifactId>
  <version>1.0</version>
  <packaging>jar</packaging>

爲了在Jenkins生成包時保證生成的jar是可直接運行的,要設置pom.xml

我程序主類是:com.PlanManager

<build>
  <plugins>
  <plugin>  
   <groupId>org.apache.maven.plugins</groupId>  
   <artifactId>maven-shade-plugin</artifactId>  
   <version>1.2.1</version>  
   <executions>  
       <execution>  
           <phase>package</phase>  
           <goals>  
               <goal>shade</goal>  
           </goals>  
           <configuration>  
               <transformers>  
                   <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">  
                       <mainClass>com.PlanManager</mainClass>  
                   </transformer>  
               </transformers>  
           </configuration>  
       </execution>  
   </executions>  
</plugin>
  </plugins>
  </build>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章