-
为什么Maven打jar包回覆盖表我自己的MANIFEST.MF文件啊?
2013-01-31 11:45:02[size=x-large]为什么Maven打jar包回覆盖表我自己的MANIFEST.MF文件啊,能不能不要覆盖呀[/size] -
nexus : maven上传jar包到nexus私服后的存放路径以及保存的数据结构
2020-03-30 15:08:04maven上传jar包到nexus私服的方法,网上大神详解很多,那么上传后的jar包存放到哪里了呢? 在下使用nexus3.2.1版本,在本地搭建了私服,使用maven上传jar包。最后结果如下: 点进去后展示的是: 这让我一度以为是...1.美图
2.背景
因为要上传我的所有仓库的包,希望nexus中已有的包,我不覆盖,没有的添加。所以想批量上传jar。所以想知道这些jar都存放在哪里了?
maven上传jar包到nexus私服的方法,网上大神详解很多,那么上传后的jar包存放到哪里了呢?
在下使用nexus3.2.1版本,在本地搭建了私服,使用maven上传jar包。最后结果如下:
点进去后展示的是:
这让我一度以为是以jar包的形式保存在本地,但事实证明,保存在本地的最终是一个 .bytes 类型的文件,它的默认路径在\nexus-3.2.1-01-win64\sonatype-work\nexus3\blobs\default\content
下面
即使jar包是同样的,但是deploy了两次,那么就会展示两次
nexus设置自定义路径时,要设置Blob Stores,默认只有default一个,新建一个路径的话就可以自己指定了
-
Maven项目pom文件覆盖jar包版本
2020-05-13 18:00:27pom.xml中引入一下代码会覆盖引入jar的版本 <dependencyManagement> <dependencies> <dependency> <groupId>xxx</groupId> <artifactId>xxx</artifactId> <...pom.xml中引入一下代码会覆盖引入jar的版本
<dependencyManagement> <dependencies> <dependency> <groupId>xxx</groupId> <artifactId>xxx</artifactId> <version>xxx</version> <scope>xxx</scope> </dependency> </dependencies> </dependencyManagement>
比如需要在Springboot项目中使用spring-messaging 这个5.2.6.RELEASE版本的的jar信息。原来SpringBoot中已存在4.3.4这个版本。那么我们只需要这么做即可
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-messaging</artifactId> <version>5.2.6.RELEASE</version> <scope>compile</scope> </dependency> </dependencies> </dependencyManagement>
-
关于maven锁定jar包版本&&EL表达式解析版本
2020-11-21 14:33:05就会覆盖A中传递过来的jar包 可能就会因为版本号而导致意外的事情 如何锁定版本 只需要在我们写dependencies处的上方 写一段 <dependencyManagement> <dependencies> <dependency> <groupId...锁定版本前因
比如我们有两个项目A和B 其中B项目依赖于A项目
也就是说A项目依赖的jar包会传递到B项目中去
如果这时B项目直接导入A项目所依赖的jar包
就会覆盖A中传递过来的jar包
可能就会因为版本号而导致意外的事情
如何锁定版本
只需要在我们写dependencies处的上方
写一段<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>4.2.4.RELEASE</version> </dependency> </dependencies> </dependencyManagement>
比如这样 我们就锁住了 spring-beans的版本号为4.2.4.RELEASE
EL表达式解析版本
我们只需要写一个properties标签
比如<properties> <junit.version>4.11</junit.version> </properties>
这就是一个键值对的结构
然后在需要使用的地方用EL表达式导入即可
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency>
-
Maven覆盖私服上的jar包,本地仓库无法更新的问题
2019-06-06 11:24:21在上传第三方jar包到私服环境时,第一次上传成功后,突然发现上传的jar包有问题,但是因为已经指定了版本号,并且是release版本的jar包,因为不想更换版本号,所以再重复上传正确的jar包,就会出现如下错误: ...在上传第三方jar包到私服环境时,第一次上传成功后,突然发现上传的jar包有问题,但是因为已经指定了版本号,并且是release版本的jar包,因为不想更换版本号,所以再重复上传正确的jar包,就会出现如下错误:
一种解决办法是指定另外一个版本号 -DVerison=XXXX;
另外一种方法是删除私服上的已上传的jar包,然后重新进行上传,
首先登陆私服的管理台:
在搜索界面中输入想要删除的jar包,这里以"commons"为例,然后找到对应的group,对应版本号的jar包,点进去:
在左上角会有删除内容的按钮,点击后即可删除该jar包:
发现maven仓库中已经没有了相应的jar包,而后重新上传指定版本的第三方jar后,发现已经可以成功上传。
附:maven上传私服的命令:
mvn deploy:deploy-file -DgroupId=com.xxxx -DartifactId=commons -Dversion=45.0.91 -Dpackaging=jar -Dfile=E:\xxxx\biospace-commons.jar -Durl=http://xxxx:8081/repository/maven-releases/ -DrepositoryId=releases
事情还没完,当在本地重新打包项目时,发现引用的commons包还是之前的,去本地仓库中一看,jar包果然没法重新进行更新(现在是6.6号):
在这里解释一下release与snapshot版本的jar包,maven在下载依赖时所依赖的策略是不同的:在Nexus仓库中,一个仓库一般分为public(Release)仓和SNAPSHOT仓,前者存放正式版本,后者存放快照版本。如果在项目配置文件pom.xml中指定的版本号带有’-SNAPSHOT’后缀,比如版本号为’Junit-4.10-SNAPSHOT’,那么打出的包就是一个快照版本。
假设你依赖一个库的正式版本,构建的时候构建工具会先在本次仓库中查找是否已经有了这个依赖库,如果没有的话才会去远程仓库中去拉取。所以假设你发布了Junit-4.10.jar到了远程仓库,有一个项目依赖了这个库,它第一次构建的时候会把该库从远程仓库中下载到本地仓库缓存,以后再次构建都不会去访问远程仓库了。所以如果你修改了代码,向远程仓库中发布了新的软件包,但仍然叫Junit-4.10.jar,那么依赖这个库的项目就无法得到最新更新。你只有在重新发布的时候升级版本,比如叫做Junit-4.11.jar,然后通知依赖该库的项目组也修改依赖版本为Junit-4.11,这样才能使用到你最新添加的功能。
所以在我们团队开发时,最好采用Snapshot快照版本,倘若A依赖于B-SNAPSHOT.jar,这样在A构建时会优先去远程仓库中查看是否有最新的B-SNAPSHOT.jar,如果有则下载下来使用。即使本地仓库中已经有了B-SNAPSHOT.jar,它也会尝试去远程仓库中查看同名的jar是否是最新的。
为了避免在开发时候不断去拉取无用的快照版,充分利用本地Maven仓库的缓存机制,在配置Maven的Repository的时候中有个配置项,可以配置对于SNAPSHOT版本向远程仓库中查找的频率。频率共有四种,分别是always、daily、interval、never。当本地仓库中存在需要的依赖项目时,always是每次都去远程仓库查看是否有更新,daily是只在第一次的时候查看是否有更新,当天的其它时候则不会查看;interval允许设置一个分钟为单位的间隔时间,在这个间隔时间内只会去远程仓库中查找一次,never是不会去远程仓库中查找(这种就和正式版本的行为一样了)。
<repository> <id>myRepository</id> <url>...</url> <snapshots> <enabled>true</enabled> <updatePolicy>XXX</updatePolicy> </snapshots> </repository>
其中updatePolicy就是那4种类型之一。如果配置间隔时间更新,可以写作interval:XX(XX是间隔分钟数)。daily配置是默认值。(参考)
回到上面的问题,所以在上面已经更换正确版本的jar包本地或者打包服务器上的maven仓库仍然是旧版本的情况下有两种解决方法:
1,删掉本地仓库的缓存,重新下载jar包;
2,倘若无法接触到服务器上的maven本地仓库,那就只能更改jar的版本号重新引入新版本的jar包了。 -
使用maven打jar包时运行报错:java.io.IOException: No FileSystem for scheme: hdfs
2018-07-22 13:32:38hadoop-common.jar中的services内容打进了最终的jar包中,而hadoop-hdfs.jar包中,services的内容被覆盖了; 而在生成的最终jar包中,无法找到这个schema的实现。所以就抛出了 java.io.IOException: No FileSystem ... -
maven jar包冲突
2017-03-23 08:47:07Caused by: java.lang.RuntimeException: java.io.IOException: invalid constant type: 15 ...解决:在pom.xml中添加(一定要放在最前端,以免被其他覆盖) org.javassist javassist 3.19.0-GA -
maven将本地jar包打入到war包当中
2020-05-28 12:12:11因为我的web项目A引用了工程B,B又引用了C工程,当有一天B、C都升级了,我的老项目A改了一点点东西,但我引用旧的B、C被新版本覆盖掉了,我只有老的BC的jar包所以出现了这种问题 解决方法 我注释掉了了maven的全部... -
maven-pmd jar包下载
2011-12-02 16:01:01maven-pmd 让你更方便统计处代码的覆盖率! -
Maven3-jar包冲突及创建SSM项目
2020-10-06 01:43:02这种添加没有任何意义,不叫jar包冲突,在前的不起作用,在后的起作用,后面会覆盖前面,这不是jar包冲突这是你的问题 我们指的jar包冲突是两个包同时依赖同一种第三方jar包,而依赖的版本不同会产生冲突,这种叫... -
通过Maven生成War包Jar包调优代码结构
2016-05-21 22:36:54典型的有个基础war项目,派生很多子war项目。 如sys.war是基础工程,包含底层java代码,...子项目如果要覆盖sys项目的文件,只需要在子项目建立存在相同的路径相同的文件名就可以。 sys.war的pom.xml 注意 tr -
maven项目缺少jar包方法总结
2019-08-08 00:03:49推荐下jar的仓库: https://mvnrepository.com/ http://maven.aliyun.com/mvn/view 参考写的好的几篇文章: 文章中提到的c、配置一个中央仓库覆盖默认的中央仓库(推荐使用)需要再研究下 ...这个可以试试 ... -
Maven项目中导入jar包的冲突解决
2020-01-21 21:46:13maven工程在导入jar包的坐标时,必须要先考虑jar包之间的冲突问题,不然,当低版本的jar包覆盖高版本的jar包,会使程序发生一系列的问题。解决jar包冲突的方式有三种: 第一种解决方式: 第一声明优先原则:哪一个... -
maven-jar-plugin 特殊用法
2013-08-04 18:31:00编译构建red5 发现server jar包含了boot里面的类,覆盖默认jar-plugin的打包方式 注意颜色加粗的地方 <plugin> <artifactId>maven-jar-plugin</artifactId> &... -
【maven】工程导入jar包异常
2018-04-09 19:18:14这两天接手新项目,通过pom.xml导入jar包后,...应该是没联网的时候,点击了reimport,导致maven自动生成了不完整的文件夹,联网后再次reimport也不会覆盖原文件夹 删除异常的jar包文件夹后,重新下载,问题解决。... -
Maven工程锁住项目核心jar包
2021-02-18 13:03:47原因: maven工程是可以分父子依赖关系的。 本(B)项目依赖别的(A)项目(即jar...我们可以把A项目中主要核心jar包的坐标锁住,那么依赖A项目的B项目中,即便是有同名jar包直接依赖,也无法覆盖A项目中的jar包版本。 < -
IDEA配置MAVEN下载模板和jar包
2020-06-07 03:00:10IDEA配置MAVEN 1.首先你安装和配置MAVEN(这里不会的看我的上一个博客) 2.打开idea的settings 这里的路径是你放MAVEN的路径, 注意 ...覆盖标签 2.看清楚不要粘贴在了<! —>注释里面了 <mirro -
maven打可执行jar包,scope设为provided失效,引用jar包仍会打包到libs目录中的解决办法(可执行jar包加载...
2019-08-26 20:39:14由于不同省份jar包不同,且存在同一jar包不同版本,导致高版本覆盖低版本的问题,同时为缩减项目包的大小。所以希望将这部分jar包通过外部引入的方式在运行时动态加载而非放入可执行jar包的libs目录下。这样项目分省... -
maven的几个重要配置文件pom.xml、settings.xml;Maven打包生成包含所有依赖的jar包...
2017-05-24 18:44:00、用户家目录下的.m2/settings.xml 与 maven 全局配置settings.xml ,后面两者不难理解,就像linux下的用户一样,有一个/etc/profile ,用户用目录下还有一个.bash_profile 文件是一样的,用户自定义配置会覆盖全局... -
springboot多依赖项目maven打jar出现[5,30] 程序包com.dophy.dophyerpskin不存在和[10,2] 找不到符号
2019-09-03 11:16:25springboot聚合工程打包时程序包找不到,是因为maven编译时会生成两种jar包。一种是普通jar,一种可执行jar, 默认两种jar包名称一样。如果不做任何配置,普通jar先生成、可执行jar后生成,可执行jar包会覆盖普通jar包... -
maven上传jar至依赖库
2011-11-14 18:39:17maven install 将相应的包上传到本地库,然后修改pom.xml的parent节点 例如 parent com.taobao 1.0.1 需要注意的是要修改version 版本号,防止覆盖。 最后到相应包目录下执行maven deplo... -
maven项目打jar,war包方法
2016-05-18 14:21:54一、向pom.xml中添加maven-war-plugin,webappDirectory可覆盖默认的war包存放路径 ... <groupId>org.apache.maven.plugins <artifactId>maven-war-plugi -
maven的常用包配置
2017-12-03 09:48:46用于配置maven的时候方便导入jar包,里面覆盖了大多数web开发用到的资源 -
maven打包(Spring Framework打入jar)
2018-12-18 15:52:12maven打包方式:普通打包,不...原因是Spring Framework的多个jar包中包含相同的文件spring.handlers和spring.schemas,如果生成一个jar包会互相覆盖。为了避免互相影响,可以使用AppendingTransformer来对文件内... -
maven parent 覆盖_Maven入门2 - 资源
2020-11-27 19:09:28${basedir}/src/main/java和${basedir}/src/main/resources都对应JAR包里的基路径,上例JAR包中的内容是这样的(可以用解压缩工具打开浏览JAR包里的内容):其他文件都是Maven生成JAR包的时候自己添加进去的。... -
Maven assembly打包文件被覆盖问题
2017-07-01 15:56:22为了简单方便使用运行,利用maven的assembly将需要使用的jar都打包到一个jar中。这样无论拷贝到哪里,只有运行就可以,不用需要任何配置。配置时指定mainClass,运行java的main函数时则可以不用指定包含main函数的类...