问题标签 [pom.xml]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
maven - Maven 备用 pom
调用 maven 构建以指定替代文件代替标准 pom.xml 文件名时是否有参数?
基本上,我需要使用各种配置运行我的 Maven 构建的测试目标。现在我不得不使用一个外部脚本来更新这个配置的标准 pom,然后恢复文件。我宁愿只能够维护几个单独的配置文件,并用我需要的特定文件调用 maven。
我想知道是否有某种方法可以覆盖 pom.xml,例如
这可能吗?
spring - 如何找出maven的pom.xml中的依赖所依赖的jar?
我对如何找出 maven 的 pom.xml 中的依赖项所依赖的 jar非常感兴趣。
我习惯于在我的 Web 应用程序项目中自己添加库(jar)。我在尝试配置 spring 3.0 示例时遇到了这种需求。我真的不喜欢一切都必须通过 spring 3.0.x 的 maven。在这一点上,我似乎无法深入挖掘 maven 的依赖迷宫,并且学习它看起来是必须的。但是,如果有人能告诉我一种可以找到此信息的方法,我将不胜感激。
比如下面的pom.xml,想知道跟artifactId spring-context 的依赖关系是什么。(我可以看到它取决于 commons-logging,因为示例的创建者排除了它 - 想要使用 slf4j 而不是 commons-logging。)。我想用 artifactId spring-context 找出依赖项的其余依赖项,其余的依赖项也是如此!我怎样才能做到这一点?
亲切的问候,
暴君
编辑(一些跟进肖恩给出的答案):
1)下载maven(我下载了2.2.1版)并按照那里给出的安装说明进行操作。
2)然后打开命令提示符并转到 pom.xml 的目录
3)按照建议执行“mvn dependency:tree”命令。(我尝试使用 -DoutputFile="somePath" 或 -Dinclude=spring-context -> 它没有写入路径中显示的文件,而是选择所有依赖项而不是 spring-context - 无论一般命令将够了)。等待一段时间让系统下载所有需要的信息,最后你会得到这样的东西:
您可以使用 Jarvana 下载 jar(只需键入 jarvana + jar 的名称),也可以使用 svn checkout 命令。
Jarvana 中的 hibernate-validator:jar:4.1.0.Final 返回错误(没有 4.1.0 Final 版本 -> 只有 4.0.2 Final
也找不到 org.codehaus.jackson-mapper-asl 1.6.4 - 只有 1.6.2 (jackson-core-asl 也一样). 我假设如果你使用 maven 来构建你的项目也会发生同样的情况。
在包含所有需要的 jar 之后,我以调试模式启动服务器,这发生了:
这意味着(我认为)这些罐子被发现两次。删除它们为我完成了工作。pom.xml 之类的接缝对此示例无效。
我花了太多时间手动下载 jars 并“争取”所有项目配置,所以我想如果你想从 Spring 3.0 开始,最好学习一些 Maven。
java - 编译阶段后通过 Maven 插件生成新源
我有一个 Maven 项目,我需要在其中执行两个代码生成步骤。一个生成一些 Java 类型,然后第二个依赖这些 Java 类型生成更多代码。有没有办法在我的构建过程中同时执行这两个步骤?
目前我的步骤是:
- 执行第一个代码生成插件(期间
generate-sources
) - 将生成类型的目录添加到构建路径
- 执行第二个代码生成插件(期间
compile
)
但是我的问题是第二个代码生成插件生成的任何东西都不会被编译(因为编译阶段已经完成)。如果我将第二个代码生成插件附加到较早的阶段,它会失败,因为它需要第一个代码生成插件中的类出现在类路径中。
我知道我可以把它分成两个模块,一个依赖于另一个,但我想知道这是否可以在一个 pom.xml 中实现。似乎需要一种在正常编译阶段完成后再次调用 compile 的方法。
有任何想法吗?
maven-2 - 多个条件下的 Maven 配置文件激活
我正在努力在项目中设置 rpm-maven 插件。在我们的暂存和生产环境中,构建发生在 Red Hat 机器上,但我们有几个用于开发和测试的 Windows 机器,所以我希望 RPM 构建过程成为配置文件的一部分,该配置文件仅在具有rpmbuild 已安装。
这是我第一次尝试激活条件:
我最初的测试只涉及在 Windows 机器上构建和在 CentOS 机器上构建,两者都给了我预期的结果。后来,该构建在没有可用 rpmbuild 的 Linux 机器上中断。似乎不支持有两个这样的条件。是这样吗?我意识到我可能只是摆脱<os/>
元素并获得我想要的结果,但是为了将来参考,有没有更好的方法来创建具有多个激活条件的配置文件?
maven - 如何在不同的 POM 之间共享 POM 片段
我目前正在为 Maven 苦苦挣扎:我有一个由几个嵌套模块组成的复杂项目,对于其中一些模块,我在 POM 中有类似的配置。
我想让它干净。实际上,我想定义一个“runnable-jar”通用配置并在某些模块中激活它。
这是我想在几个项目之间共享的 POM 片段:
在某些 POMS 中,我希望能够执行以下操作:
我已经搜索了将一些 XML 片段导入 POM 或定义整个 XML 节点集宏的方法。
对于我所发现的,最接近的解决方案是在父 POM 中定义一个配置文件,并通过测试文件的存在来在某些子模块中激活它。请参阅此相关问题。但我面临的问题是{basedir}
没有正确设置继承/设置的属性。
我发现需要一个黑客来做一些如此基本的事情(=通常)是非常令人惊讶的。你通常如何在 Maven 中处理这个问题?
maven - Maven:在构建过程中安装 jar 文件
我有如下要求。我需要在 Maven 构建过程中运行 ant 构建文件。我需要从我的 pom.xml 文件中调用 build.xml。我已经使用 maven-antrun-plugin 做到了这一点。现在我需要在 maven 编译我的项目源之前将 ant build 生成的 jar 文件自动安装到我的本地存储库中。我尝试使用 build-helper-maven-plugin 但没有帮助。要么我做错了什么,要么我做得不对。请帮忙。
更新
谢谢你。ant maven 任务也对我有用。但是,我在构建过程结束时遇到了以下异常。非常感谢任何帮助。
org.apache.tools.ant.ExitException: Permission (java.lang.RuntimePermission exitVM) was not granted. at org.apache.tools.ant.types.Permissions$MySM.checkExit(Permissions.java:196) at java.lang.Runtime.exit(Runtime.java:99) at java.lang.System.exit(System.java:275) at org.codehaus.classworlds.Launcher.main(Launcher.java:376) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:599) at org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:217) at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:152) at org.apache.tools.ant.taskdefs.Java.run(Java.java:771) at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:221) at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:135) at org.apache.tools.ant.taskdefs.Java.execute(Java.java:108) at org.apache.maven.artifact.ant.Mvn.execute(Mvn.java:81) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) at java.lang.reflect.Method.invoke(Method.java:599) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:390) at org.apache.tools.ant.Target.performTasks(Target.java:411) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399) at org.apache.tools.ant.Project.executeTarget(Project.java:1368) at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) at org.apache.tools.ant.Project.executeTargets(Project.java:1251) at org.apache.tools.ant.Main.runBuild(Main.java:809) at org.apache.tools.ant.Main.startAnt(Main.java:217) at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280) at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
build - Hudson Maven 使用工作区 POM 构建失败,在指向开发副本时工作
我正在使用 Eclipse IDE、Maven、SVN 和 Hudson 为 CI 开发一系列 Web 应用程序。
当我在 Hudson 作业中将“Root POM”选项指定为其工作区目录中的 pom.xml 副本时,由于缺少类路径条目,构建失败并引用编译失败。
当我在我的 Eclipse 工作区中将“根 POM”指定为 pom.xml 的副本时,它构建得很好。它也可以从 Eclipse 构建。
我想把 Hudson 移到一台单独的机器上,以便几个开发人员可以使用它,所以我不能很好地指向我自己的开发工作区来给它一个 POM。如果我尝试在“root pom.xml”选项中放置一个 SVN URL,它会说找不到文件。
对于由多个开发人员参与并托管在 SVN 存储库中的项目,我应该在此处输入什么?
maven - 有没有办法全局排除 Maven 依赖项?
我试图找到一种“通用”方式来排除传递依赖项,而不必将其从依赖它的所有依赖项中排除。例如,如果我想排除 slf4j,我会执行以下操作:
这部分是为了清理 pom 文件,部分是为了避免将来人们添加依赖于排除的依赖项的依赖项而忘记排除它的问题。
有办法吗?
maven - maven-install-plugin:安装子模块 jar 文件
我有一个包含六个子模块的聚合项目。构建一切正常,但是当我尝试mvn install:install-file时,我只得到顶级 pom。我也尝试过mvn install:install我收到错误“无法覆盖只读参数:目标中的打包:安装:安装”。
我在所有子模块中都指定了安装插件。
父 POM:
子 POM:
其他人似乎有这个工作,但经过几个小时的研究并尝试了我能想到的一切(合理的),我一直处于死胡同。
想法?
PS,这是maven 2.2.1。
maven-2 - OSGI:在 maven-bundle-plugin 中生成 bundle-classpath
我正在尝试将 web-inf/lib 中的所有 jar 添加到 Bundle-ClassPath 中。我看到了几种方法,它们都不起作用:
1) 添加
2)添加
当然,在“Bundle-ClassPath”中一个一个地写jar可以解决问题,但听起来不是一个合理的解决方案。
谢谢