snapshots版本和release版本区别

snapshot版本和release版本区别

在java开发过程中,我们经常会看到代码仓库中的某些项目版本以release或snapshots结尾,现在说说这两个版本之间有什么区别.

一般来说snapshots版本代表正在开发中的版本,release代表比较稳定的发布版本.

比如我们新建一个maven项目,默认版本是这样的:

<groupId>com.example</groupId>
	<artifactId>demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>demo</name>
<description>Demo project</description>

上面0.0.1表示项目的版本号,表示这次迭代我要开发的所有主要功能都是属于这个版本的;
-SNAPSHOT表示该版本是快照版本,一般处于开发阶段,0.0.1版本还有功能没有完成,或还有bug还要修复,所以这个阶段一般代码更新比较频繁,开发人员写完代码会直接提交到代码仓库,这样之前依赖0.0.1-SNAPSHOT版本的开发人员也可以马上更新代码.
-Release表示是稳定版的,这次迭代的所有功能都已经完成,并且通过了测试之后,就可以发布为0.0.1-Release版本,Release版的一旦发布,就不要再改变代码了,所以如果之后在0.0.1-Release这个版本上发现了bug,需要修复,那么我们应该将0.0.1-Release版本改为0.0.2-SNAPSHOT,然后再修改bug并测试,没问题之后将0.0.2-SNAPSHOT改为0.0.2-Release发布.

使用maven的时候maven会根据pom文件中的version中是否带有-SNAPSHOT来判断是否是快照版本。如果是快照版本,在maven deploy时会发布到快照版本库中,依赖该版本的项目在编译打包时,maven会自动从maven仓库下载新的快照版本。如果是正式发布版本,deploy时会自动发布到正式版本库中,依赖该版本的项目在编译打包时如果本地已经存在该版本的工程默认不会从maven仓库下载新的版本.

所以如果现在开发的项目依赖了另外一个项目,如果不希望出现本来运行的好好地,过了一会儿因为依赖项目的更新突然不能运行了,那么可以选择依赖一个Release版本(如果有的话).

  • 17
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你可以尝试使用异步操作来解决效率低的问题。可以使用`mediaPlayer.events().addMediaPlayerEventListener()`方法来注册一个`MediaPlayerEventListener`,然后在其回调方法中处理截图操作。 首先,创建一个实现了`MediaPlayerEventListener`接口的类,重写`mediaPlayerReady()`方法,在该方法中进行截图操作。在回调方法中,你可以通过`mediaPlayer.snapshots().get()`获取截图,并保存到文件。 以下是修改后的代码示例: ```java public void testVlcj2() { String rtspUrl = "rtsp://admin:Lg123456@192.168.129.63:554"; String[] VLC_ARGS = { "--vout", "dummy" }; new NativeDiscovery().discover(); MediaPlayerFactory mediaPlayerFactory = new MediaPlayerFactory(VLC_ARGS); MediaPlayer mediaPlayer = mediaPlayerFactory.mediaPlayers().newMediaPlayer(); mediaPlayer.events().addMediaPlayerEventListener(new MediaPlayerEventAdapter() { @Override public void mediaPlayerReady(MediaPlayer mediaPlayer) { BufferedImage image = mediaPlayer.snapshots().get(); if (image != null) { System.out.println(mediaPlayer.snapshots().get()); mediaPlayer.snapshots().save(new File("E:\\image.jpg")); } // 停止播放并释放资源 mediaPlayer.controls().stop(); System.out.println("mediaPlayer停止了"); mediaPlayer.release(); mediaPlayerFactory.release(); } }); mediaPlayer.media().play(rtspUrl); mediaPlayer.controls().play(); } ``` 这样就不需要使用`Thread.sleep()`来等待截图完成了,而是在回调方法中进行截图操作,确保截图时摄像头画面已经加载完成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值