1.Maven把项目依赖的所有jar包都打到同一个jar中
2.Foliage篇-ProceduralFoliageSpawner 源码分析拓展-允许亲疏关系
3.聊聊如何避免多个jar通过maven打包成一个jar,多个同名配置文件发生覆盖问题
4.Java 命令 javac、java
5.自学maven教程5-常用插件介绍
6.求关于d'espairsray乐队的东西
Maven把项目依赖的所有jar包都打到同一个jar中
使用maven-shade-plugin
在项目的pom.xml文件中加入以下插件:
然后执行Maven的package命令打包项目。
完成后,在target目录下可见生成的jar包。
使用java -jar xxxx.jar命令即可运行此jar包。恋爱技巧app源码
在Mac OS系统下的IDEA中实施时,有时在jar/META-INF目录下会出现ECLIPSEF.SF、ECLIPSE.RSA等文件,并在运行java -jar xxx.jar时,会抛出错误。解决办法:手动删除jar包中META-INF/*.RSA、META-INF/*.DSA、META-INF/*.SF这些文件,然后即可正常运行。
推荐使用maven-assembly-plugin
在项目的pom.xml文件中加入以下插件:
执行Maven的package命令打包项目。
打包完成后,在target目录下可见生成的jar包,其中xxx-jar-with-dependencies.jar是包含依赖jar包的jar文件,另一个不包含依赖jar包。
使用java -jar xxxx.jar命令即可运行此jar包。
扩展:Maven安装本地jar包到本地仓库
执行以下命令
查阅Maven常用命令了解更多。
扩展:手动生成jar包
创建可执行jar包的关键在于让java -jar命令知道jar包中的主方法属于哪个类,即配置主类的全限定名。
步骤如下:
打包指定的项目,以Linux系统为例,项目名为java-test,位于/data/project/java-test目录下,主类全限定名为com.healchow.test.Main。
上述命令将java-test目录下的所有文件打包到test.jar中,并指定主类。
了解jar命令的android 电量监控源码其他用法。
扩展:Linux下运行jar包的几种方式
5.1 阻塞式方式:终端会话窗口被阻塞,可按CTRL + C中断程序运行,或关闭会话窗口终止程序。
5.2 后台运行方式:终端会话窗口不会被阻塞,但关闭当前窗口时,程序会终止运行。
5.3 后台持续运行方式:使用nohup命令运行任务,当用户退出或终端关闭时,程序运行不受影响。
使用nohup命令运行任务时,输出默认重定向到nohup.out文件,除非指定输出文件。
其他命令扩展:
① 通过jobs命令查看后台运行任务,任务将获得编号。
② 使用fg命令将指定编号的后台任务调回前台控制,如:fg 将号任务调回前台。
③ 查看占用某个端口的进程。
加入Java程序员开发群:
群内提供免费的Java架构学习资料(包括高可用、高并发、高性能、分布式、Jvm性能调优、Spring源码、MyBatis、Netty、Redis、Kafka、Mysql、Zookeeper、Tomcat、Docker、青海卫视源码Dubbo、Nginx等)合理利用时间学习,提升自我,不再以“没有时间”为借口!
Foliage篇-ProceduralFoliageSpawner 源码分析拓展-允许亲疏关系
要实现开放大世界的高效植被生成,ProceduralFoliageSpawner 成为首选工具。然而,原生配置的FoliageType之间缺乏关联性,使得美术在调整生成植被时面临大量工作。因此,引入亲疏关系的概念,以优化生成流程。
利用ProceduralFoliageSpawner的特性,我们构建了一个直观的配置界面,如图所示。主要属性将融入整体计算流程,以探索其作用。
分析发现,生成流程中并行与随机过程限制了直接距离检查的可能。亲疏关系的检查需在所有计算过程完成,结果确定后执行。此机会出现在CompositeTile阶段,所有Instance与Tile合并过程已结束。
通过在FoliageType中添加配置结构体与距离属性,我们优化了组件内的属性配置。在UProceduralFoliageComponent::ExecuteSimulation方法中,于CompositeTexture最后阶段,调用UProceduralFoliageTile::CheckFoliageRelatedRestrict方法,实现亲疏关系的全面筛查。
该方法利用Tile的FProceduralFoliageBroadphase四叉树管理工具,检查各个Instance的baocms7.0源码配置相关性。此工具负责所有Instance的增删改查操作,包括CollisionRadius/ShadeRadius的距离剔除等。
聊聊如何避免多个jar通过maven打包成一个jar,多个同名配置文件发生覆盖问题
在开发过程中,你是否遇到过这样的问题:外部项目需要访问内部nexus私仓的jar,但私仓不对外开放,导致外部项目无法下载私仓的jar,进而导致项目无法运行。
面对这种情况,常用的解决方法有两种:一是外部项目与内部nexus的网络打通,例如通过***;二是将私仓的jar直接下载给外部项目。然而,私仓的jar可能包含依赖其他内部jar的情况,因此需要下载多个jar。为了方便,我们可能会将这些jar合并成一个大jar再给出去。但是,一些jar包会有同名的配置文件,如spring.factories,如果不进行处理,直接打包,就会出现同名配置文件覆盖的情况。
本文将探讨如何解决多个jar合并成一个jar时,多个同名配置文件覆盖的问题。
解决思路是通过maven-shade-plugin插件,利用插件的org.apache.maven.plugins.shade.resource.AppendingTransformer来处理多个jar包中存在重名的配置文件的合并。其核心是在于合并多个同名配置文件内容,而非覆盖。
示例配置如下,打包后的配置文件效果如下图所示。
然而,手机视频软件源码仅仅追加同名的配置内容可能无法满足所有需求,例如spring.factories文件。为了达到预期的效果,我们需要进行进一步的调整。
在尝试寻找解决方案时,我在maven-shade-plugin的官方示例中未能找到合适的方案。于是,我面临两条路:一是放弃maven-shade-plugin插件,选择其他类似的插件,如maven-assembly-plugin;二是扩展maven-shade-plugin。由于maven-assembly-plugin的扩展配置比maven-shade-plugin复杂,我最终选择了在maven-shade-plugin的基础上进行扩展。
在扩展思路中,我没有直接修改maven-shade-plugin插件,而是在maven-shade-plugin打包后的基础上,进行插件定制。具体实现思路是修改maven-shade-plugin打包后的spring.factories文件内容,将其调整为如下形式:
自定义maven插件spring-factories-merge-plugin的核心思路如下:
1. 如何读取配置文件spring.factories中key重复的内容,而不被覆盖。
如果直接使用java.util.properties的读取,当配置文件中有key重复时,如多个org.springframework.boot.autoconfigure.EnableAutoConfiguration,最后会出现value值被覆盖的情况。
解决方案是利用org.apache.commons.configuration.PropertiesConfiguration进行处理。
在项目的pom中引入GAV,读取配置示例代码如下。
2. 如何将修改后的配置文件重新写入jar。
我的思路是直接利用IO进行操作。
项目中如何配置插件的小细节是:当maven-shade-plugin和spring-factories-merge-plugin的执行生命周期都是相同阶段,例如都是在package时,则maven-shade-plugin的放置顺序需要在spring-factories-merge-plugin之前,因为spring-factories-merge-plugin是对maven-shade-plugin打包后的结果进行二次加工。如果maven-shade-plugin的放置顺序不在spring-factories-merge-plugin之前,则spring-factories-merge-plugin的执行阶段需要比maven-shade-plugin靠后,例如maven-shade-plugin在package阶段执行,则spring-factories-merge-plugin需要在install或deploy阶段执行。
打包后的效果图如下。
总结:在阅读开源框架时,我们常常关注源码,而忽略了maven插件。这次因为有打包jar的需求,我发现无论是springboot还是dubbo都集成了许多宝藏插件,例如maven-shade-plugin插件。如果以后有对maven插件的需求,推荐从springboot或dubbo中寻找,可能会带来意想不到的收获。
Java 命令 javac、java
Java命令行中的关键工具javac和java在JDK和其他版本中各有用途。javac负责编译Java源代码,而java则用于运行编译后的.class文件。
1. 编译阶段:在命令行中,当你使用javac时,如javac org/example/Demo.java,它会在当前目录或指定目录生成Demo.class文件。源文件的路径必须完整,包括.java后缀。如果Demo.java在当前目录,需要先创建相应文件夹结构。编译时,不仅当前文件会被编译,依赖的其他类也会一并处理,这时可能需要使用-classpath选项指定依赖的jar包。
2. 运行阶段:使用java命令时,运行的是.class文件,例如java org.example.Demo a 1 bc ,参数之间用空格分隔。运行时,如果类路径依赖了其他jar,如A.jar和B.jar,编译时指定A.jar,运行时则需同时指定。当项目规模大或依赖复杂时,Maven或Gradle是管理这些依赖的利器。
系统变量和环境变量在Java命令中也扮演重要角色,如-Dproperty=value用于设置系统变量,JAVA_TOOL_OPTIONS则可以全局配置编码和语言设置。使用-maven shade插件或创建空jar依赖管理包也是常见的实践。
综上,Java命令行的javac和java不仅用于文件编译和运行,还涉及系统配置和依赖管理,是Java开发中的基础工具。
自学maven教程5-常用插件介绍
在maven工程和springboot工程的开发中,常用插件起着至关重要的作用。以下是关于maven工程中的一些核心插件介绍:
1. maven-compiler-plugin:负责编译项目源代码。
2. maven-dependency-plugin:用于管理和复制依赖的jar包。
3. maven-jar-plugin:打包项目时,可以指定manifest信息,包括主类和依赖。
4. maven-antrun-plugin:运行Ant任务,适用于执行复杂的定制操作。
5. wagon-maven-plugin:实现一键部署,上传jar到远程服务器。
6. maven-shade-plugin:合并多个jar为一个,便于打包和运行。
7. maven-archetype-plugin:生成项目骨架,加速项目初始化。
8. maven-assembly-plugin:制作项目分发包,控制打包内容和格式。
9. maven-dependency-plugin:分析项目依赖,管理未声明的依赖。
. maven-enforcer-plugin:强制团队遵循规则,避免不一致和错误。
. maven-help-plugin:提供辅助信息,如环境变量、有效POM和settings。
. maven-release-plugin:自动化版本发布,管理SCM信息。
. maven-resources-plugin:处理项目资源文件,支持过滤和添加额外目录。
. maven-surefire-plugin:执行测试,支持跳过和排除测试。
. build-helper-maven-plugin:添加源码目录,支持附属构件的生成。
. exec-maven-plugin:运行本地系统程序,或在JVM中执行指定的mainClass。
. jetty-maven-plugin:简化Web应用测试,自动部署和更新。
在springboot工程中,虽然没有直接列出常用插件,但这些maven插件同样适用于springboot项目,它们可以帮助管理和构建springboot应用。例如,maven-assembly-plugin可以打包成可执行的jar,maven-war-plugin用于生成war文件,maven-shade-plugin可以优化jar包结构以减少运行时的依赖问题。
通过合理使用这些插件,开发和维护项目变得更加高效和有序。
求关于d'espairsray乐队的东西
资料DespairsRay
DéspairsRay成立于年的东京
Karyu的重金属吉他,Hizumi那低沉粗野的声音成为了乐队标志,适当的电子合成加上粗野荒诞的音乐,在空气中弥漫着,带来了强烈的冲击。
这也是一支极富视觉感受和热爱表演的乐队,他们喜欢皮质胸衣,网眼布和长长的带子,长钉,锁链的束缚,没有滑稽,只有*,他们懂得什么才是真正的摇滚,黑色的悲鸣的吉他,许多静电噪音,在Hizumi的音乐作品中充斥着,当你刚刚习惯他们的低声吟唱时,他们便开始尖叫,会让你全身心的投入。就是这样一支疯狂的乐队。黑色重金属摇滚的曲风,也许你会被他们的音乐征服。
作者: despairs的许诺 -8- : 回复此发言
--------------------------------------------------------------------------------
2 回复:资料DespairsRay
Hizumi (Vocal)
生日: 3月2日
身高: .6CM
体重: kg
血型: B
爱好: 电脑
特长: 设计
喜欢的色: 黑色
喜欢的食物: 炸药
不喜欢的食物: 苯
喜欢的饮料: Qoo
喜欢的烟: 不吸烟
喜欢的艺术家: Cabagin
喜欢的演员: Una Kowa
喜欢自己乐队的歌曲: doubt
作者: despairs的许诺 -8- : 回复此发言
--------------------------------------------------------------------------------
3 回复:资料DespairsRay
Karyu (Guitar)
生日: 月7日
血型: 0
喜欢的色: 红、黑、白
喜欢的食物: 小女孩
不喜欢的食物: 药
喜欢的饮料: 可爱的女孩子的血
喜欢的烟: 七星
喜欢的艺术家: Korn
喜欢的演员: 没有
喜欢自己乐队的歌曲: genshoku
喜欢看上去看可爱的女孩子
第一次恋爱: 任何时候
作者: despairs的许诺 -8- : 回复此发言
--------------------------------------------------------------------------------
4 回复:资料DespairsRay
Zero (Bass)
血型: 0
不喜欢的食物: 任何的海产
喜欢的饮料: 米酒
喜欢的烟: Red Lark
喜欢的艺术家: Mana-sama
喜欢的演员: 秘密
喜欢自己乐队的歌曲: 全部
喜欢*的女孩子
第一次恋爱: 今天
作者: despairs的许诺 -8- : 回复此发言
--------------------------------------------------------------------------------
5 回复:资料DespairsRay
Tsukasa (Drum)
生日: 3月2日
身高: CM
体重: kg
血型: B
爱好: 画画
喜欢的色: 黑、红、灰
喜欢的食物: 咖哩饭、奶油
不喜欢的食物: 虾
喜欢的饮料: 新鲜的
喜欢的烟: Lucky Strike
喜欢的艺术家: 自己
喜欢自己乐队的歌曲: kisei -parasite-
第一次恋爱: 幼稚园
/mv_Emule_List_.html - 类似网页
参考资料:以上结果已优化回答者:hao - 经理 五级 3- :
--------------------------------------------------------------------------------
资料DespairsRay
DéspairsRay成立于年的东京
Karyu的重金属吉他,Hizumi那低沉粗野的声音成为了乐队标志,适当的电子合成加上粗野荒诞的音乐,在空气中弥漫着,带来了强烈的冲击。
这也是一支极富视觉感受和热爱表演的乐队,他们喜欢皮质胸衣,网眼布和长长的带子,长钉,锁链的束缚,没有滑稽,只有*,他们懂得什么才是真正的摇滚,黑色的悲鸣的吉他,许多静电噪音,在Hizumi的音乐作品中充斥着,当你刚刚习惯他们的低声吟唱时,他们便开始尖叫,会让你全身心的投入。就是这样一支疯狂的乐队。黑色重金属摇滚的曲风,也许你会被他们的音乐征服。
回答者:万大宝 - 见习魔法师 二级 3- :
--------------------------------------------------------------------------------
/f?kw=d%espairsray
这里全有
2024-12-29 04:03
2024-12-29 03:59
2024-12-29 03:56
2024-12-29 03:50
2024-12-29 03:43
2024-12-29 03:23
2024-12-29 03:09
2024-12-29 02:53