精华内容
下载资源
问答
  • 还有就是在使用svn来管理项目的时候,每个svn版本都对应一个数字,但是换了git之后,每个提交记录就不是简单的生成个int数字,还是递增的数字了,对应的是个hash值,类似Java对象的hashcode,这个时候就希望,每次...

    以前这个gradle都是给Android使用的,万万没想到,Java的其它项目也能使用,甚至能替代maven或者说maven和gradle项目是可以互相转换的。还有就是在使用svn来管理项目的时候,每个svn版本都对应一个数字,但是换了git之后,每个提交记录就不是简单的生成个int数字,还是递增的数字了,对应的是个hash值,类似Java对象的hashcode,这个时候就希望,每次项目打包之后,产生出来的jar包带上这个git版本号,虽然不似svn那样一个简单的int数字就能说明版本,但是git的hash值还是可以凑合用的,也能对应找到提交版本记录。

    首先在最外层的根 build.gradle文件里面定义几个全局的方法,子模块项目就可以直接使用,而不用再复制一次。

    static def gitHashAndBuildTime() {

    return "-" + getGitSHA() + "-" + releaseTime()

    }

    static def releaseTime() {

    return new Date().format("yyyy-MM-dd HH:mm", TimeZone.getTimeZone("GMT+08:00"))

    }

    static def getGitSHA() {

    return 'git rev-parse --short HEAD'.execute().text.trim()

    }

    releaseTime()方法:获取当前的时间。日期格式化,差不多就是上面的形式。根Java的日期格式化差不多。

    getGitSha()方法:就是获取当前分支的 git hashcode的值。

    gitHashAndBuildTime() 方法:也是全局变量,直接把上面的2个值拼在一起,自模块打包jar的时候,就可以直接使用了。

    也可以单独调用下面的2个方法。

    使用这几个定义的方法

    def artifactId = "xxx-lxk"

    jar.doFirst {

    manifest {

    attributes("Manifest-Version": "1.0",

    "Created-By": 'x',

    "Implementation-Title": 'xxx',

    "Implementation-Version": version,

    "Implementation-Vendor": "xxx",

    "Class-Path": configurations.compile.collect { it.getName() }.join(' ')

    )

    }

    baseName = artifactId + gitHashAndBuildTime()

    }

    重点就是在打jar包打时候,有个关键字 baseName,修改这个值,就会修改最终生成打jar打名称。

    f9e426b5ce0d47bc4b44665fe6414a99.png

    展开全文
  • 还有就是在使用svn来管理项目的时候,每个svn版本都对应一个数字,但是换了git之后,每个提交记录就不是简单的生成个int数字,还是递增的数字了,对应的是个hash值,类似Java对象的hashcode,这个时候就希望,每次...

    以前这个gradle都是给Android使用的,万万没想到,Java的其它项目也能使用,甚至能替代maven或者说maven和gradle项目是可以互相转换的。还有就是在使用svn来管理项目的时候,每个svn版本都对应一个数字,但是换了git之后,每个提交记录就不是简单的生成个int数字,还是递增的数字了,对应的是个hash值,类似Java对象的hashcode,这个时候就希望,每次项目打包之后,产生出来的jar包带上这个git版本号,虽然不似svn那样一个简单的int数字就能说明版本,但是git的hash值还是可以凑合用的,也能对应找到提交版本记录。

    首先在最外层的根 build.gradle文件里面定义几个全局的方法,子模块项目就可以直接使用,而不用再复制一次。

    static def gitHashAndBuildTime() {

    return "-" + getGitSHA() + "-" + releaseTime()

    }

    static def releaseTime() {

    return new Date().format("yyyy-MM-dd HH:mm", TimeZone.getTimeZone("GMT+08:00"))

    }

    static def getGitSHA() {

    return 'git rev-parse --short HEAD'.execute().text.trim()

    }

    releaseTime()方法:获取当前的时间。日期格式化,差不多就是上面的形式。根Java的日期格式化差不多。

    getGitSha()方法:就是获取当前分支的 git hashcode的值。

    gitHashAndBuildTime() 方法:也是全局变量,直接把上面的2个值拼在一起,自模块打包jar的时候,就可以直接使用了。

    也可以单独调用下面的2个方法。

    使用这几个定义的方法

    def artifactId = "xxx-lxk"

    jar.doFirst {

    manifest {

    attributes("Manifest-Version": "1.0",

    "Created-By": 'x',

    "Implementation-Title": 'xxx',

    "Implementation-Version": version,

    "Implementation-Vendor": "xxx",

    "Class-Path": configurations.compile.collect { it.getName() }.join(' ')

    )

    }

    baseName = artifactId + gitHashAndBuildTime()

    }

    重点就是在打jar包打时候,有个关键字 baseName,修改这个值,就会修改最终生成打jar打名称。

    展开全文
  • 您可以使用svn:keywords在每次提交后获取文件中的当前版本号.修订版替换有$Revision $属性,存储库URL替换有$HeadURL $.您只需将以下字符串放入文件并将此文件置于版本控制之下:$Revision$$HeadURL$如果您使用maven...

    不幸的是,jar清单本身没有版本编号的任何标准.

    但实际上,还有另一种标准方法可以自动更新版本号.您可以使用svn:keywords在每次提交后获取文件中的当前版本号.修订版替换有$Revision $属性,存储库URL替换有$HeadURL $.您只需将以下字符串放入文件并将此文件置于版本控制之下:

    $Revision$$HeadURL$

    如果您使用maven动态创建清单,我建议将以下内容放入version.properties文件中:

    revision=$Revision$

    repourl=$HeadURL$

    然后在语句中加入pom.xml(maven应该启用属性插件):

    org.codehaus.mojo

    properties-maven-plugin

    1.0-alpha-1

    initialize

    read-project-properties

    version.properties

    然后,您将能够将修订号和repo url放入清单:

    另请注意,您需要使用subversion属性explicitly enable svn:keywords才能在文件中使用实际值替换$Revision $和$HeadURL $.如果您决定使用version.properties,则需要运行以下命令:

    svn propset svn:keywords Revision version.properties

    svn propset svn:keywords HeadURL version.properties

    展开全文
  • Maven插件之buildnumber-maven-plugin某些情况下(这种情况一般很少见),使用maven构建项目时,需要一个不重复的序列号,比如说,打包时,包名称以当前构建时间结尾,或者每次生成的jar包中包含唯一的序列号,等等;...

    Maven插件之buildnumber-maven-plugin

    某些情况下(这种情况一般很少见),使用maven构建项目时,需要一个不重复的序列号,比如说,打包时,包名称以当前构建时间结尾,或者每次生成的jar包中包含唯一的序列号,等等;

    这个时候,就用到了buildnumber插件,官方网址:

    http://mojo.codehaus.org/buildnumber-maven-plugin/index.html

    该插件能按照指定的方案生成序列号;首先引入该插件

    org.codehaus.mojo

    buildnumber-maven-plugin

    1.2

    常用以下两个目标:

    buildnumber:create(基于SCM版本生成)

    buildnumber:create-timestamp(基于系统时间生成)

    两个目标都默认绑定在initialize生命周期;其中create-timestamp目标是1.0-beta-5版本新增;

    以下分别介绍:

    buildnumber:create

    其参数介绍如下:

    个人认为,使用create-timestamp目标就足够了。

    有关”format”和”items”参数的使用,例子如下:

    org.codehaus.mojo

    buildnumber-maven-plugin

    1.2

    At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.

    7

    timestamp

    a disturbance in the Force

    validate

    create

    其他常用配置有

    {0,number}.{1,number}.{2,number}

    buildNumber0

    buildNumber1

    buildNumber2

    {0,date,yyyy-MM-dd HH:mm:ss}

    timestamp

    产生的 ${buildNumber}值分别如下:

    At 12:30 PM on Jul 3, 2053, there was a disturbance in the Force on planet 7.

    2.0.3

    2005-10-06 2:22:55

    其他详细信息,请参考官网

    http://mojo.codehaus.org/buildnumber-maven-plugin/usage.html

    PS:一个有用的实践,自定义属性,将生成的序列号赋值其中,便于其他插件等地方使用;

    ${timestamp}

    org.codehaus.mojo

    buildnumber-maven-plugin

    1.2

    validate

    create

    false

    false

    ${project.build.directory}

    verNum

    {0,date,yyyyMMddHHmmss}

    timestamp

    ${project.artifactId}-${project.version}.v${verNum}-${timestamp}

    ...

    展开全文
  • 实现思路:从服务器获取最新版本号,和当前版本判断,从而判断出是否需要更新从服务器下载最新版本的jar文件到临时文件夹(所有java代码,包含更新的这一段,都导出为可执行的jar)关闭当前程序,复制临时文件夹的新...
  • 因为,sharding-jdbc 是一款轻量级 Java 框架,以 jar 包形式提供服务,不要我们做额外的运维工作,并且兼容性也很好。 相关阅读: 读写分离&分库分表常见问题总结 负载均衡 负载均衡系统通常用于将任务比如...
  • 因为,sharding-jdbc 是一款轻量级 Java 框架,以 jar 包形式提供服务,不要我们做额外的运维工作,并且兼容性也很好。 相关阅读: 读写分离&分库分表常见问题总结 负载均衡 负载均衡系统通常用于将任务比如...
  • java开源包1

    千次下载 热门讨论 2013-06-28 09:14:34
    github-java-api 是 Github 网站 API 的 Java 语言版本java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
  • java开源包12

    热门讨论 2013-06-28 10:14:45
    github-java-api 是 Github 网站 API 的 Java 语言版本java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
  • Java资源包01

    2016-08-31 09:16:25
    github-java-api 是 Github 网站 API 的 Java 语言版本java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
  • java开源包101

    2016-07-13 10:11:08
    github-java-api 是 Github 网站 API 的 Java 语言版本java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
  • java开源包11

    热门讨论 2013-06-28 10:10:38
    github-java-api 是 Github 网站 API 的 Java 语言版本java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
  • java开源包2

    热门讨论 2013-06-28 09:17:39
    github-java-api 是 Github 网站 API 的 Java 语言版本java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
  • java开源包3

    热门讨论 2013-06-28 09:20:52
    github-java-api 是 Github 网站 API 的 Java 语言版本java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
  • java开源包6

    热门讨论 2013-06-28 09:48:32
    github-java-api 是 Github 网站 API 的 Java 语言版本java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
  • java开源包5

    热门讨论 2013-06-28 09:38:46
    github-java-api 是 Github 网站 API 的 Java 语言版本java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
  • java开源包10

    热门讨论 2013-06-28 10:06:40
    github-java-api 是 Github 网站 API 的 Java 语言版本java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
  • java开源包4

    热门讨论 2013-06-28 09:26:54
    github-java-api 是 Github 网站 API 的 Java 语言版本java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
  • java开源包8

    热门讨论 2013-06-28 09:55:26
    github-java-api 是 Github 网站 API 的 Java 语言版本java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
  • java开源包9

    热门讨论 2013-06-28 09:58:55
    github-java-api 是 Github 网站 API 的 Java 语言版本java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
  • java开源包7

    热门讨论 2013-06-28 09:52:16
    github-java-api 是 Github 网站 API 的 Java 语言版本java缓存工具 SimpleCache SimpleCache 是一个简单易用的java缓存工具,用来简化缓存代码的编写,让你摆脱单调乏味的重复工作!1. 完全透明的缓存支持,对...
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
     用JAVA编写了一个小工具,用于检测当前显示器也就是显卡的显示模式,比如分辨率,色彩以及刷新频率等。 Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用...
  • 21个目标文件 摘要:JAVA源码,媒体网络,山寨QQ,Java聊天程序 Java编写的山寨QQ,多人聊天+用户在线,程序分服务端和客户端,典型C/S结构, 当用户发送第一次请求的时候,验证用户登录,创建一个该qq和服务器端保持...
  • 行为追溯 - 用户通过 callback 或 future 不仅能获取当前数据是否发送成功的信息,还可以获得该数据每次被尝试发送的信息,有利于问题追溯和行为决策。 上下文还原 - 同一个 producer 实例产生的日志在同一上下文中...
  • 所有的库文件和平台都被打包成一个jarJava Archive)文件,文件名称表明文件的版本号。比如本章采用的是Aglet的2.0.2版本,那么它的jar文件名称就是aglets-2.0.2.jar(ch12文件夹下有改归档文件)。下面详细说明了...
  • -versionCode 版本号 -versionName 版本名称,如1.0.3 -packageName Apk包名 -certs [index] [MD5|SHA1|issuer|subject|validity] 获取证书的信息 -verify 校验apk内文件的签名,并列出未通过校验的文件 -...
  • 这是 JPush REST API 的 Java 版本封装开发包,是由极光推送官方提供的,一般支持最新的 API 功能。 对应的 REST API 文档:REST API - Push, REST API - Report. 版本更新:Release页面。下载更新请到这里。 非常...
  • --更新客户端数据版本号--> <id>1</id><!--序号--> <dn>2.0</dn><!--新客户端数据版本号--> <udv> <uud><!--用户ID更新--> <id>2</id...
  • 当前版本0.2.2为测试版本。请商户的专业技术人员在使用时注意系统和软件的正确性和兼容性,以及带来的风险。 环境要求 Java 1.8+ 安装 最新版本已经在 Maven Central 发布。 Gradle 在你的build.gradle文件中...

空空如也

空空如也

1 2 3
收藏数 54
精华内容 21
关键字:

java获取当前jar版本号

java 订阅