【qq头像源码】【wordpress源码学习】【microbit固件源码】Shade源码

1.Maven把项目依赖的所有jar包都打到同一个jar中
2.Foliage篇-ProceduralFoliageSpawner 源码分析拓展-允许亲疏关系
3.聊聊如何避免多个jar通过maven打包成一个jar,多个同名配置文件发生覆盖问题
4.Java 命令 javac、java
5.自学maven教程5-常用插件介绍
6.求关于d'espairsray乐队的东西

Shade源码

Maven把项目依赖的所有jar包都打到同一个jar中

       使用maven-shade-plugin

       在项目的pom.xml文件中加入以下插件:

       然后执行Maven的package命令打包项目。

       完成后,在target目录下可见生成的jar包。

       使用java -jar xxxx.jar命令即可运行此jar包。qq头像源码

       在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命令的wordpress源码学习其他用法。

       扩展: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、microbit固件源码Dubbo、Nginx等)合理利用时间学习,提升自我,不再以“没有时间”为借口!

Foliage篇-ProceduralFoliageSpawner 源码分析拓展-允许亲疏关系

       要实现开放大世界的高效植被生成,ProceduralFoliageSpawner 成为首选工具。然而,原生配置的FoliageType之间缺乏关联性,使得美术在调整生成植被时面临大量工作。因此,引入亲疏关系的概念,以优化生成流程。

       利用ProceduralFoliageSpawner的特性,我们构建了一个直观的配置界面,如图所示。主要属性将融入整体计算流程,以探索其作用。

       分析发现,生成流程中并行与随机过程限制了直接距离检查的可能。亲疏关系的检查需在所有计算过程完成,结果确定后执行。此机会出现在CompositeTile阶段,所有Instance与Tile合并过程已结束。

       通过在FoliageType中添加配置结构体与距离属性,我们优化了组件内的属性配置。在UProceduralFoliageComponent::ExecuteSimulation方法中,于CompositeTexture最后阶段,调用UProceduralFoliageTile::CheckFoliageRelatedRestrict方法,实现亲疏关系的全面筛查。

       该方法利用Tile的FProceduralFoliageBroadphase四叉树管理工具,检查各个Instance的后端云源码配置相关性。此工具负责所有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

       这里全有

更多内容请点击【娱乐】专栏