如何优化maven 项目pom依赖赖项

maven使用基本功——pom文件优化知多少 - CSDN博客
maven使用基本功——pom文件优化知多少
& & & & 使用maven进行多模块项目构建时,不得不提的就是pom文件的优化问题。
& & & & maven引入了pom继承机制:
& & & &&首先建一个com.jianxin:test-parent:0.0.1-SNAPSHOT的maven项目。
& & & & 然后建一个com.jianxin:test-son:0.0.1-SNAPSHOT的maven项目(注二者是同级目录)。
& & & & 打开test-son的pom.xml文件,在里面输入:
&groupId&com.jianxin&/groupId&
&artifactId&test-parent&/artifactId&
&version&0.0.1-SNAPSHOT&/version&
&relativePath&../test-parent/pom.xml&/relativePath&
&/parent&&
& & & 其中relativePath的默认值为../pom.xml,如果test-son的根目录在test-parent下,那么relativePath就可以不写了。这个路径的重要之处在于,如果专注于一个子模块的开发,那么父模块有极大可能是没有装到本地仓库的,这个路径错了,那么Maven将无法找到父pom,导致构建失败。如果根据relativePath找到父pom,那么就不需要再去检查本地仓库了。
& & & & 这样,在父模块中定义
&dependencies&
&dependency&
&groupId&junit&/groupId&
&artifactId&junit&/artifactId&
&version&4.9&/version&
&scope&test&/scope&
&/dependency&
&/dependencies&&
& & & 在子模块中就会直接加上这个依赖。
& & & & 问题来了:
& & & &&设计模式中说过,能聚合不继承,就是因为继承有极大可能会在子类中添加子类不需要的东西。于是maven也采用了一定的机制使得父pom中的元素不被继承,但设置是继承的。
& & & & 方法就是将dependencies放到dependencyManagement中,如下:& & & &&
&dependencyManagement&
&dependencies&
&dependency&
&groupId&junit&/groupId&
&artifactId&junit&/artifactId&
&version&4.9&/version&
&scope&test&/scope&
&/dependency&
&/dependencies&
&/dependencyManagement&& & & & 那么,子模块在使用到junit的时候,只需要声明groupId和artifactId即可,即:
&dependencies&
&dependency&
&groupId&junit&/groupId&
&artifactId&junit&/artifactId&
&/dependency&
&/dependencies&& & & &&有人说这样也不省事啊,但是却不用开发子模块的人员写version和scope,还有就是对于依赖中有可能会设置的exclusions也会继承,那么那些繁杂的设置就不需要再进行重复设置了。
& & & & 类似的plugins有一个上级标签pluginManagement,设置还是会被继承,相对dependency来说plugins的优势更加明显,plugin的设置是比较多的,而如果plugin如果不这样设置,那么如果更改一点东西,所有的用到plugin都需要更改,那将是一个恶梦。
& & & & 这里有一个,是从maven实战上面截下来的,上面说明了一下都是什么样的元素都会被继承,其实不看也行,我对其总结为只要是重复的,那么就可以试着提一下,因为我们若碰到重复写的配置,那么人家肯定会将这个问题解决掉的,不然maven也不会这么火。
& & & & 但也有一个元素是这里面没有,但确定能够被继承,那就是profiles也能被继承。
=================================华丽的侵害线=======================================
& & & & 以上是对于公共部分的优化,对于我们项目中的jar的引用,我们的定义是不将其放到父pom中,而是在子项目中用到哪个就直接复用gav进行定位。但gv是用maven中内置属性project.groupId,project.version,即
&dependencies&
&dependency&
&groupId&${project.groupId}&/groupId&
&artifactId&test-other&/artifactId&
&version&${project.version}&/version&
&/dependency&
&/dependencies&& & & & 但还是需要自己设置scope的事,个人感觉这里会埋下什么伏笔,但愿不要出什么问题吧。
=================================华丽的侵害线=======================================
& & & & 其实优化也不难,在你会用maven将一条线全部构建成功后,其它线的构建也就是这样构建,那么你就可以以这条线的配置为基础,将第三方的全部抽取的父pom中,将子pom中除groupId、artifactId都删了,涉及每个都需要的设置信息,都放到父pom中,最后如果能运行成功,那么就没有什么问题了。
& & & & 关键是要有看到重复就不舒服的心,pom文件的优化会随着项目的进行而进一步修改有大的改动后,再进行说明。
本文已收录于以下专栏:
相关文章推荐
使用Maven进行项目的版本管理,以及注意事项
1)内置属性 
Xml代码  
${basedir} represents the directory containing pom.xml  
${version}&#16...
maven坐标和依赖详解,
maven依赖的调优技术
maven依赖配置的最佳实践
maven配置的常见问题的解决方案
maven修改本地资源库的地址
maven使用用户级别的配置
不要使用eclipse内嵌的Maven
用maven管理工程是常有的事情。稍微大一点的构建,依赖多了,一个pom文件写所有依赖肯定是不现实的。这时候就有了 节点了。然后我的某个工程中的是这样配置的:
com.free4lab.o...
功能很简单,这里使用了jQuery的方法,因此依赖于jQuery。
如果存在多项name相同的表单对象,会使用&,&英文逗号隔开。
完整代码:
//从from获取数据,转为对象
比如有一个Css样式表为.mycss.css#lb_login{      font-size:30;} 在页面中:    无标题页     在上面的关键地方是:#lb_...
极其方便的使用Mybatis单表的增删改查
项目地址:http://git.oschina.net/free/Mapper
不客气的说,使用这个通用Mapper甚至能改变你对...
他的最新文章
讲师:宋宝华
讲师:何宇健
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)解决pom文件依赖冲突、版本错误的问题 - CSDN博客
解决pom文件依赖冲突、版本错误的问题
一、重复类
解决方法:(删除其中一个包,现在流行的日志框架用SLF4J,所以保留这个包)
1、在IntelliJ IDEA的pom文件用“ctrl+shift+alt+U”快捷键输出pom依赖框架,找到commons-logging:commons-logging的引用,这个工程项目是-context在引用
2、用&exclusions&方法
&dependency&
&groupId&org.springframework&/groupId&
&artifactId&spring-context&/artifactId&
&exclusions&
&exclusion&
&groupId&commons-logging&/groupId&
&artifactId&commons-logging&/artifactId&
&/exclusion&
&/exclusions&
&/dependency&
二、版本号冲突
[WARNING] Rule 9: org.apache.maven.plugins.enforcer.DependencyConvergence failed with message:
Failed while enforcing releasability the error(s) are [
Dependency convergence error for xxx.tc:common-zookeeper:1.1.2 paths to dependency are:
+-com.xxx.flight.inter:inter_public_data.cache:1.1.4
+-xxx.tc:qmq-client:2.0.5
+-xxx.tc:common-zookeeper:1.1.2
+-com.xxx.flight.inter:inter_public_data.cache:1.1.4
+-xxx.tc:qmq-client:2.0.5
+-xxx.tc.qtracer:qtracer-instrument-http:1.0.7
+-xxx.tc.qtracer:qtracer-client:1.0.7
+-xxx.tc:common-zookeeper:1.1.0
解决方法:
用&dependencyManagement&,选择高版本
本文已收录于以下专栏:
相关文章推荐
用maven管理库依赖,有个好处就是连同库的依赖的全部jar文件一起下载,免去手工添加的麻烦,但同时也带来了同一个jar会被下载了不同版本的问题,好在pom的配置里面允许用来排除一些不需要同时下载的依...
关于Maven的Pom.xml报错的个人解决办法!!!
  在导入别人的工程或者使用命令行利用maven创建项目的时候,可能会遇到pom.xml文件报错的情况:(如下所示)
原因是缺少相应的jar...
一、重复类
解决方法:(删除其中一个包,现在流行的Java日志框架用SLF4J,所以保留这个包)
1、在IntelliJ IDEA的pom文件用“ctrl+shift+alt+U”快捷键输出pom...
在一次的maven项目中遇到这样一个bug:
    编译器没有报什么错,但无法编译,或者能编译,项目启动不了。后来我才发现是以下的问题:
    项目中的pom文件中,依赖了webx3.core...
犯这个错误也是很逗了,估计遇到和我一样情况的不多.
在这个大神文章的指导下,我为自己的Android Studio设置了红杏公益代理,文章链接奉上:http://www.liaohuqiu.net/...
解决在MyEclipse的Package Explorer中复制文件夹,然后粘贴到其它节点上,更新后出现各种版本冲突、无法提交的问题
Maven项目的pom文件中的显示声明的依赖jar,会隐式依赖一些别的第三方jar,这些隐式的jar有可能会与其它的隐式依赖的jar或显示声明的jar冲突,造成一些功能不能正常执行。这时,我们可以通过...
在maven项目中遇到这样一个场景:
    项目中的pom文件中,依赖了spring-core,而Spring-core又隐式的依赖了commons-logging。
    项目中同时配置...
首先在pom.xml中添加:
org.apache.maven.plugins
maven-project-info-reports-plugin
如果用的是eclips...
他的最新文章
讲师:宋宝华
讲师:何宇健
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)Maven(50)
所有Maven 库 需要的包 及 pom.xml 中 groupId& artifactId version 都可在这个网上收到。
例如:需要 通过 maven 在项目 中 添加 geronimo-kernel 的包,但不知道 maven 中的 pom 文件的 groupId& artifactId version 是什么?这种情况下就可到& / 搜索。
& 1:框中输入:& geronimo-kernel
& 2:在左侧& All Repositories 列表中,选中 Maven-Central 项
& 3:右侧依次 出现 org.apache.geronimo.framework / geronimo-kernel
&&&&&&&&&&&&&&&&&& 3.0-M1& 2.2.1& 2.2&& 2.1.7&& 2.1.6&& 2.1.5
4:pom文件中输入:
&dependency&
&groupId&org.apache.geronimo.framework&/groupId&
&artifactId&geronimo-kernel&/artifactId&
&version&2.2&/version&
&/dependency&
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:270346次
积分:4145
积分:4145
排名:第8075名
原创:42篇
转载:708篇
评论:12条
(1)(3)(1)(13)(9)(18)(32)(3)(19)(38)(26)(12)(20)(30)(47)(90)(79)(75)(65)(45)(37)(44)(18)(12)(5)(6)(1)(1)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'maven依赖--dependency命令 - CSDN博客
maven依赖--dependency命令
maven 依赖
要分析的pom文件:
&project xmlns=&http://maven.apache.org/POM/4.0.0& xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance&
xsi:schemaLocation=&http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&&
&modelVersion&4.0.0&/modelVersion&
&groupId&uk.ac.liverpool&/groupId&
&artifactId&JTViewer&/artifactId&
&version&0.7.1&/version&
&name&The JT format parser and renderer&/name&
&developers&
&developer&
&name&Fabio Corubolo&/name&
&email&&/email&
&/developer&
&developer&
&name&Jerome Fuselier&/name&
&email&jerome.&/email&
&/developer&
&/developers&
&description&A pure Java library to decode the JT(TM) file format from Siemens PLM (TM).
See / for samples and the file format specification. See licensing for the specific JT specification license data structures license. The library is produced independently and has no affiliation to Siemens PLM (TM).
This library curerntly parses JT files including faceted data, the Logocal Scene Graph and other the necessary information, and renders it using the JReality toolkit.&/description&
&url&/p/jt-java/&/url&
&inceptionYear&2010&/inceptionYear&
&!-- 该插件用于编译源码 --&
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-compiler-plugin&/artifactId&
&configuration&
&!-- http://maven.apache.org/plugins/maven-compiler-plugin/ --&
&source&1.5&/source&
&target&1.5&/target&
&/configuration&
&!-- 该插件用于设置主类,因为默认的mvn install生成的jar是不带主类入口的 --&
&groupId&org.apache.maven.plugins&/groupId&
&artifactId&maven-jar-plugin&/artifactId&
&configuration&
&manifest&
&!-- 设置classpath路径 --&
&addClasspath&true&/addClasspath&
&!-- 设置主类入口 --&
&mainClass&uk.ac.liv.jt.viewer.JTViewer&/mainClass&
&/manifest&
&/archive&
&/configuration&
&!-- 该插件能打包项目为指定格式,更重要的是能能够自定义包含/排除指定的目录或文件。 --&
&artifactId&maven-assembly-plugin&/artifactId&
&executions&
&execution&
&!-- 绑定到package阶段,自动打包; --&
&id&assemble&/id&
&phase&package&/phase&
&goal&single&/goal&
&configuration&
&descriptors&
&!-- 指定一个Assembly描述符文件,该文件指定了打包格式,包含的文件/过来的文件等信息,可以同时指定多个描述符文件,打包成不同的格式。 --&
&descriptor&src/main/assembly/jtv.xml&/descriptor&
&/descriptors&
&/configuration&
&/execution&
&/executions&
&configuration&
&finalName&JTViewer&/finalName&
&/configuration&
&/plugins&
&repositories&
&repository&
&id&google.code.fab4project&/id&
&name&google.code.fab4project&/name&
&!-- 这个地址现在已经不存在了 :&url&/svn/trunk/repository/&/url& --&
&url&/jasonknight/jreality/tree/master/lib&/url&
&/repository&
&/repositories&
&dependencies&
&dependency&
&groupId&jreality&/groupId&
&artifactId&jReality&/artifactId&
&version&1.0&/version&
&scope&system&/scope&
&systemPath&D:/lib/jReality.jar&/systemPath&
&/dependency&
&dependency&
&groupId&jreality&/groupId&
&artifactId&jrworkspace&/artifactId&
&version&1.0&/version&
&scope&system&/scope&
&systemPath&D:/lib/jrworkspace.jar&/systemPath&
&/dependency&
&dependency&
&groupId&jreality&/groupId&
&artifactId&jterm&/artifactId&
&version&1.0&/version&
&scope&system&/scope&
&systemPath&D:/lib/jterm.jar&/systemPath&
&/dependency&
&dependency&
&groupId&jreality&/groupId&
&artifactId&smrj.jar&/artifactId&
&version&1.0&/version&
&scope&system&/scope&
&systemPath&D:/lib/smrj.jar&/systemPath&
&/dependency&
&!-- Sunflow是一个照片级的渲染系统,具备光线跟踪渲染内核,整个工程用Java编写,面向对象的结构 --&
&dependency&
&groupId&jreality&/groupId&
&artifactId&sunflow.jar&/artifactId&
&version&1.0&/version&
&scope&system&/scope&
&systemPath&D:/lib/sunflow.jar&/systemPath&
&/dependency&
&!-- 颜色检测器 --&
&dependency&
&groupId&jreality&/groupId&
&artifactId&colorpicker&/artifactId&
&version&1.0&/version&
&scope&system&/scope&
&systemPath&D:/lib/colorpicker.jar&/systemPath&
&/dependency&
&dependency&
&groupId&jreality&/groupId&
&artifactId&beans&/artifactId&
&version&1.0&/version&
&scope&system&/scope&
&systemPath&D:/lib/beans.jar&/systemPath&
&/dependency&
&dependency&
&groupId&com.lowagie&/groupId&
&artifactId&itext&/artifactId&
&version&2.1.3&/version&
&type&jar&/type&
&scope&compile&/scope&
&exclusions&
&exclusion&
&artifactId&bcmail-jdk14&/artifactId&
&groupId&bouncycastle&/groupId&
&/exclusion&
&exclusion&
&artifactId&bcprov-jdk14&/artifactId&
&groupId&bouncycastle&/groupId&
&/exclusion&
&/exclusions&
&/dependency&
&dependency&
&groupId&com.thoughtworks.xstream&/groupId&
&artifactId&xstream&/artifactId&
&version&1.3.1&/version&
&type&jar&/type&
&scope&compile&/scope&
&/dependency&
&dependency&
&groupId&org.beanshell&/groupId&
&artifactId&bsh&/artifactId&
&version&2.0b4&/version&
&type&jar&/type&
&scope&compile&/scope&
&/dependency&
&dependency&
&groupId&org.codehaus.janino&/groupId&
&artifactId&janino&/artifactId&
&version&2.5.16&/version&
&type&jar&/type&
&scope&compile&/scope&
&/dependency&
&!-- 语法分析解析器 --&
&dependency&
&groupId&antlr&/groupId&
&artifactId&antlr&/artifactId&
&version&2.7.7&/version&
&type&jar&/type&
&scope&compile&/scope&
&/dependency&
&/dependencies&
&/project&
1.mvn dependency:list:
可查看当前项目的已解析依赖。强直接在当前项目pom中声明的依赖定义为顶层依赖,而这些顶层依赖的依赖则定义为第二层依赖,以此类推。
[INFO] --- maven-dependency-plugin:2.8:list (default-cli) @ JTViewer ---
[INFO] The following files have been resolved:
jreality:colorpicker:jar:1.0:system
jreality:jrworkspace:jar:1.0:system
org.beanshell:bsh:jar:2.0b4:compile
xpp3:xpp3_min:jar:1.1.4c:compile
jreality:beans:jar:1.0:system
com.thoughtworks.xstream:xstream:jar:1.3.1:compile
org.codehaus.janino:janino:jar:2.5.16:compile
jreality:jReality:jar:1.0:system
antlr:antlr:jar:2.7.7:compile
jreality:jterm:jar:1.0:system
jreality:smrj.jar:jar:1.0:system
jreality:sunflow.jar:jar:1.0:system
com.lowagie:itext:jar:2.1.3:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
2. mvn dependency:tree
能够查看依赖树,通过这棵树能够很清楚的看到某个依赖是通过哪条路径引入进来的。
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ JTViewer ---
[INFO] uk.ac.liverpool:JTViewer:jar:0.7.1
[INFO] +- jreality:jReality:jar:1.0:system
[INFO] +- jreality:jrworkspace:jar:1.0:system
[INFO] +- jreality:jterm:jar:1.0:system
[INFO] +- jreality:smrj.jar:jar:1.0:system
[INFO] +- jreality:sunflow.jar:jar:1.0:system
[INFO] +- jreality:colorpicker:jar:1.0:system
[INFO] +- jreality:beans:jar:1.0:system
[INFO] +- com.lowagie:itext:jar:2.1.3:compile
[INFO] +- com.thoughtworks.xstream:xstream:jar:1.3.1:compile
\- xpp3:xpp3_min:jar:1.1.4c:compile
[INFO] +- org.beanshell:bsh:jar:2.0b4:compile
[INFO] +- org.codehaus.janino:janino:jar:2.5.16:compile
[INFO] \- antlr:antlr:jar:2.7.7:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.080 s
[INFO] Finished at: T10:04:12+08:00
[INFO] Final Memory: 13M/217M
[INFO] ------------------------------------------------------------------------
JTViewer:jar:0.7.1 &//项目编译后的打包;
“+-”后面的jar包是顶层依赖包,在pom中进行了声明;
“| &\-”后面的jar包是引用包,未在pom中声明;
只要声明顶层包,其对应的引用包会自动去仓库中下载;
“\-”,不管在pom文件中最后一个依赖引用是哪个,其前缀都是“\-”,如最后一个是:\-&antlr:antlr:jar:2.7.7:compile,或最后一个是 \-&jreality:jReality:jar:1.0:system,而该依赖是重要依赖,不可缺少,即 ”\-” 仅表后最后一个依赖引用;
2. mvn dependency:analyze
可以帮助分析当前项目的依赖。
[INFO] --- maven-dependency-plugin:2.8:analyze (default-cli) @ JTViewer ---
[WARNING] Unused declared dependencies found:
jreality:jrworkspace:jar:1.0:system
jreality:jterm:jar:1.0:system
jreality:smrj.jar:jar:1.0:system
jreality:sunflow.jar:jar:1.0:system
jreality:colorpicker:jar:1.0:system
jreality:beans:jar:1.0:system
com.lowagie:itext:jar:2.1.3:compile
org.beanshell:bsh:jar:2.0b4:compile
org.codehaus.janino:janino:jar:2.5.16:compile
antlr:antlr:jar:2.7.7:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.697 s
[INFO] Finished at: T10:51:20+08:00
[INFO] Final Memory: 14M/217M
[INFO] ------------------------------------------------------------------------
结果会有2部分:
首先是&Used declared dependencies found&,指项目中使用到,但是没有显示声明的依赖,如果有的话,需要在pom中添加依赖声明;
另外就是“Unused declared dependencies found”,指项目中未使用的,但是显示声明的依赖,但是对于这样的依赖,不能直接删除,要仔细分析。因为dependency:analyze只会分析编译主代码和测试代码用到的依赖,一些执行测试和运行时需要的依赖是发现不了的。但是很显然有些依赖是必须的,不能删除。所以要小心寻找无用的依赖信息,然后再删除。
通过以上分析,可以需要与不需要的依赖,达到优化作用。
本文已收录于以下专栏:
相关文章推荐
mvn clean install -e -U
-e详细异常,-U强制更新
1 在线安装eclipse maven插件
  Help  --&  Install New Softw...
maven工程,一个artifactId的jar包可能不只一处被依赖;有时候依赖会出现相同的artifactId却不同版本,相互存在冲突,这时就需要exclude某个版本。
试了在命令...
目标主要介绍maven的基本概念和工作机制,基于Maven实战坐标和依赖依赖管理的基础是坐标,maven仓库也基于maven坐标管理坐标
maven的坐标包括groupId、artifactId、ve...
转载:http://m.blog.csdn.net/blog/u839571
有时候我们需要使用的jar包maven仓库没有时,我们会使用其他办法添加jar包或有时候我们...
对于开发人员,我想大家对于Maven应该不会陌生吧,如何在一个Maven项目中对这个项目中所引用的第三方jar包有个直观的了解呢?
其实实现很简单,只需要借助于Maven的一条命令,如下所示:
maven项目的pom.xml文件给项目导入了不同的jar包,有时候不同的dependency会引入同一个jar包的不同版本。
当不同版本的jar包被依赖后,可能会出现:
冲突。有的版本的...
远程控制(RemoteControl)
远程控制的基本原理... 2
远程控制(RemoteControl)拥有控制端和被控端双方...2
事件回放原理... 2
捕获桌面原理...
远程控制(RemoteControl)
远程控制的基本原理... 2
远程控制(RemoteControl)拥有控制端和被控端双方...2
事件回放原理... 2
捕获桌面原理:... 3
1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。
2) 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要...
mvn clean install -e -U
-e详细异常,-U强制更新
他的最新文章
讲师:宋宝华
讲师:何宇健
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)父项目的pom.xml文件的相对路径。默认值为../(同一工作空间下另一个项目的根目录)pom.xml。maven首先从当前构建项目开始查找父项目的pom文件,然后从本地仓库,最有从远程仓库。RelativePath允许你选择一个不同的位置。
&groupId&com.certus.nfv&/groupId&
&artifactId&mano-pom&/artifactId&
&version&0.1&/version&
&relativePath&../mano-pom/pom.xml&/relativePath&
../(同一工作空间的另一个项目的根目录)mano-pom(除了本项目有多个时需要指定项目名)/pom.xml (被指定项目的pom.xml文件)
&dependencies&
//以刚才配置的parent为mvn资源来源,自动打成jar包,工项目依赖
&dependency&
&groupId&com.certus.nfv&/groupId&
&artifactId&mano-common&/artifactId&
&version&0.1&/version&
&/dependency&
//以网络的mvn库作为源,下载jar包
&dependency&
&groupId&net.sf.json-lib&/groupId&
&artifactId&json-lib&/artifactId&
&version&2.4&/version&
&classifier&jdk15&/classifier&
&/dependency&
&/dependencies&
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:95066次
排名:千里之外
原创:483篇
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'

我要回帖

更多关于 maven 项目pom依赖 的文章

 

随机推荐