Tag: pom.xml

用Maven处理依赖地狱的系统方法

我正在努力解决如何处理jar依赖地狱的问题。 我有一个使用一些aws sdk的Maven-IntelliJ Scala项目。 最近添加kinesis sdk引入了不兼容的Jackson版本。 我的问题是 :我如何系统地解决Jar地狱的问题? 我理解类加载器以及maven如何在重复的Jars之间选择,但我仍然对解决问题的实际步骤感到茫然。 我目前的尝试是基于反复试验,我在jackson的例子中概述了这里: 首先,我在Jackson数据绑定ObjectMapper类上看到了实际的exception,在本例中是NoSuchMethodError。 然后,我查看Jackson文档,了解添加或删除方法的时间。 这通常非常繁琐,因为我手动检查每个版本的api文档(问题1:有更好的方法吗?) 。 然后,我使用mvn dependency:tree来确定我实际使用的Jackson版本(问题2:是否有一种自动方式询问maven正在使用哪个版本的jar,而不是梳理树输出?) 。 最后,我在添加Kinesis SDK之前比较mvn dependency:tree输出,之后,检测mvn dependency:tree输出的差异,并希望看看Jackson版本是否发生了变化。 (问题3:当发生依赖性解析时,maven如何使用着色jar中的库?与其他任何一个相同?) 。 最后,在比较树输出之后,我尝试在POM中明确添加最新的Jackson工作版本,以触发maven依赖关系解析链中的优先级。 如果最新版本不起作用,我会添加下一个最新的lib,依此类推。 整个过程非常繁琐。 除了我提出的具体问题,我也很好奇其他人对这个问题的系统方法。 有没有人有他们使用的资源?

在Eclipse中运行时从pom获取maven项目版本和工件ID

当我遇到这个问题时,我正在查找如何从maven pom或manifest获取应用程序名称(工件ID)和版本。 在运行时获取Maven工件版本 。 当我打包项目时,上面的工作对我来说,但是当我尝试使用eclipse运行程序时,我似乎无法工作。 我在构建时尝试使用.properties方法,因为我认为这不依赖于包,但我仍然没有得到结果。 如果有人有这个问题的想法或解决方案,将不胜感激。 我的最后一次尝试如下。 这在打包(使用)时使用清单,并在eclipse中运行时尝试获取.properties文件。 String appVersion = getClass().getPackage().getImplementationVersion(); if(appVersion == null || “”.equals(appVersion)) { appVersion = Glob.getString(appVersion); if(appVersion == null || “”.equals(appVersion)) { System.exit(0); } }

将AspectJ添加到pom.xml改为使用Maven的Java版本,为什么?

更新:这是我的maven-compiler-plugin配置: org.apache.maven.plugins maven-compiler-plugin 2.3.2 1.6 1.6 我在使用Maven构建的多项目应用程序上工作。 我们决定添加AspectJ,所以我将以下代码添加到顶级项目中的pom.xml :(来自官方文档) … … org.aspectj aspectjrt 1.7.3 … … org.codehaus.mojo aspectj-maven-plugin 1.5 compile test-compile … … 以及每个下属项目的以下片段: … …. … org.codehaus.mojo aspectj-maven-plugin … org.aspectj aspectjrt …. … 不知怎的,这个修改已经覆盖了我使用的Java版本。 如果我运行build我会得到多个这样的错误: 语法错误,注释仅在源级别为1.5或更高时可用 这让我怀疑我的Java版本(原来是1.6)以某种方式还原为1.4。 我什么也没做 – 至少不是故意的 – 可能影响Java版本,所以我怀疑上面提到的AspectJ相关代码负责改变。 我的问题是AspectJ如何改变Java版本以及如何解决这个问题。 或者我是否完全误解了一些事情,我是否走错了路?

从POM.xml获取MavenProject – pom解析器?

是否可以从pom.xml文件中获取org.apache.maven.project.MavenProject的实例或POM的其他对象forms? 提前致谢。

Maven`pom.xml`中的和标记之间的区别

在配置我的pom.xml ,我必须配置一个插件。 我发现的是标签可以插入或元素中。 我很困惑! 和什么区别?

Maven BOM 依赖性

我不明白bom对象的目的是什么? 我正在使用Spring 3.2.8版本和JBoss服务器,所以我需要使用哪个bom依赖项? 当我在pom.xml中提到以下依赖项时: org.springframework spring-framework-bom 4.0.1.RELEASE pom import jar文件是否会下载到我的Maven依赖项中?

在maven依赖项中显示省略的版本:树?

在Eclipse中,当我转到Maven Dependency Hierarchy页面时,我得到输出,指出导致版本被忽略的冲突: 但是,如果我使用dependency:tree ,那就省略了,我只看到实际使用的evrsions: | +- commons-httpclient:commons-httpclient:jar:3.1:compile | +- commons-codec:commons-codec:jar:1.4:compile | +- commons-io:commons-io:jar:2.4:compile | +- commons-net:commons-net:jar:3.1:compile | +- javax.servlet:servlet-api:jar:2.5:compile 后来实际引用的版本…… +- commons-collections:commons-collections:jar:3.1:compile 有没有办法获得依赖:树输出省略冲突的版本? 谢谢!

未在POM内部distributionManagement元素或-DaltDep loymentRepository = id :: layout :: url参数中指定存储库元素

我在部署时遇到问题,这是我收到的错误消息: [INFO] [INFO] — maven-deploy-plugin:2.7:deploy (default-deploy) @ core — [INFO] ———————————————————————— [INFO] BUILD FAILURE [INFO] ———————————————————————— [INFO] Total time: 3.296 s [INFO] Finished at: 2014-11-26T17:05:00+02:00 [INFO] Final Memory: 13M/244M [INFO] ———————————————————————— [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7: deploy (default-deploy) on project core: Deployment failed: repository element w as not specified in the POM inside distributionManagement […]

是否有生成POM.xml文件的Java类?

在我的工作项目中,我最近被要求通过java类生成POM文件。 问题是我对Maven非常非常新(就像去年12月一样)。 我需要的是一个生成xml文件的某种代码(一个pom文件,但如果我可以配置任何xml创建代码,那将是好的)给定所有必要的数据,所以他们不需要手动编写它。 我不知道我是否在解释自己,但问题是,是否有任何库或类生成或构造具有给定数据的POM文件? 如果不是那么好,我只是不想花更多的时间来寻找我不知道的东西,如果它甚至存在,或者是否像宣告一个POM对象那样简单然后做一个简单的文档d = generatePom(POM p)。 既然没有人抱怨写POM文件有多难,我应该有一个简单的方法来做它们但我想我已经迷失了很多API javadoc并且我找不到回头路。 我的想法是,如果没有代码,那就是搜索POM字典(覆盖所有元素)并使用XML生成器创建一个带有给定POM对象的xml文件(我以前填充了我提供的数据)例如JDOM,XOM或XStream。 如果没有已经完成此课程的课程(比如’嘿!你这样做错了’),任何对此的想法都会受到赞赏。 PS:我已经读过Eclipse项目正在做一些Maven的事情,并且有一个API可以为你拥有的实际项目生成一个pom.xml文件。 如果我可以覆盖输入数据或其他东西,这将是一件好事。 谢谢大家!

maven插件执行的隐式ID是什么?

要禁用父POMinheritance的插件执行,可以按如下方式覆盖它: TheNameOfTheRelevantExecution 现在如果父POM没有定义显式执行ID怎么办? 这个答案说:“如果你没有指定id来执行,Maven会隐式地执行它(以你不直观的方式)。” 那么Maven如何生成执行ID? 用于链接相关Maven源代码的奖励点。 注意:我不是在寻找禁用插件执行的替代方法。