类 JarDeployer

java.lang.Object
com.walker.infrastructure.utils.JarDeployer

public abstract class JarDeployer extends Object
JAR自定义组件部署者

此组件能够把打包好的jar文件中的所有文件(或者指定文件)解压到指定的地方,
通常是classpath下面。打包的文件是符合标准的*.jar,但里面具体内容并不一定
是编译好的class也能是一些资源文件,如:图片、js、css等。

最初编写的目的是把用户web项目lib中的组件内容解压的系统webroot目录中。
作者:
shikeying
  • 字段详细资料

    • DEPLOY_JAR_PREFIX

      public static String DEPLOY_JAR_PREFIX
      部署jar的前缀,有默认值,也可设置
    • DEPLOY_FILENAME

      public static final String DEPLOY_FILENAME
      另请参阅:
    • DEPLOY_WAIT_FILES

      public static final List<File> DEPLOY_WAIT_FILES
      尚未部署的应用jar集合
    • DEPLOYED_FILES

      public static final Map<String,Long> DEPLOYED_FILES
      已经部署过的jar列表,key = jarName, value = 解压时间毫秒值
    • classpathAbsolute

      public static final String classpathAbsolute
      返回系统classpath的根路径
      如:d:/webapp/demo/WEB-INF/classes/
    • webappRootAbsolute

      public static final String webappRootAbsolute
      返回系统web应用程序的根路径,如:d:/webapp/demo/
    • webappLibAbsolute

      public static final String webappLibAbsolute
      返回web应用程序lib路径,如:d:/webapp/demo/WEB-INF/lib/
    • CLASSES_PATH

      public static final String CLASSES_PATH
      另请参阅:
    • WEBINF_PATH

      public static final String WEBINF_PATH
      另请参阅:
  • 方法详细资料

    • setJarName

      public void setJarName(String jarName)
    • getWebappLibInstance

      public static final JarDeployer getWebappLibInstance(String jarName)
      创建web项目发布者实现对象,从lib目录中找jar包,并解压到webroot中
      参数:
      jarName -
      返回:
    • deploy

      public Object deploy()
      解压并部署文件

      系统会把 webapp/WEB-INF/lib 路径中的jar文件中的所有内容解压到 webapp/下面。
      返回:
    • deploy

      public Object deploy(String srcPath, String destinationPath)
      解压并部署文件

      系统会把输入路径中的jar文件中的所有内容解压到目的地。
      参数:
      srcPath - 源路径,如:d:/src
      destinationPath - 目的地路径,如:d:/webroot
      返回:
    • decompress

      public void decompress(String fileName, String outputPath)
    • getSourcePath

      public abstract String getSourcePath()
      返回原始目标路径,即:要读取JAR文件的路径
      返回:
    • getDestinationPath

      public abstract String getDestinationPath()
      返回目的路径,即:要拷贝文件的路径
      返回:
    • getWebLibPath

      public static String getWebLibPath()
      返回WEB应用程序的lib目录的绝对路径

      如:d:/test/webapp/WEB-INF/lib/
      返回:
    • getDeployedStatus

      public static final boolean getDeployedStatus()
      返回部署状态,如果已经部署成功,返回true
      返回:
    • checkDeployStatus

      public static boolean checkDeployStatus(String deployJarPrefix)
      检查部署情况,如果不存在classpath:walker-deploy.properties文件说明初始化,需要直接跳转到部署页面;
      如果已经存在了,还需要检查lib下面的相关jar是否与文件中的对应,因为有可能会新添加文件;
    • createEmptyFile

      public static final void createEmptyFile(String filepath) throws IOException
      创建空文件
      参数:
      filepath -
      抛出:
      IOException
    • getMatchDeployedJars

      public static List<File> getMatchDeployedJars(String deployJarPrefix)
      返回找到的应用可部署的jar集合
      参数:
      deployJarPrefix - 可部署的jar文件名前缀,如:walkersoft-resource-
      返回:
    • updateDeployedJarTimestamp

      public static final void updateDeployedJarTimestamp() throws Exception
      更新jar部署包的时间戳,并记录到文件。
      抛出:
      IOException
      Exception
    • getJarRootResources

      public static final List<Properties> getJarRootResources(String jarFileName, String resourcePrefix)
      返回给定jar包中特定属性文件的内容,可能会有多个,因此返回集合
      参数:
      jarFileName - jar包的文件名,全路径
      resourcePrefix - 指定属性文件的前缀,如:app_
      返回:
    • main

      public static void main(String[] args) throws Exception
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ test code ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      参数:
      args -
      抛出:
      Exception