我可以使用 Maven 依赖项的路径作为属性吗?

2023-11-27

我的 pom.xml 中有一个 Maven 依赖项,如下所示:

<dependency>
    <groupId>com.foo</groupId>
    <artifactId>Bar</artifactId>
    <version>1.2.3</version>
</dependency>

我想使用二进制文件的系统路径作为属性(这样我就可以将它传递给由 Maven 启动的外部进程)。我可以用一种尴尬的方式做到这一点:

<properties>
    <my.lib>${settings.localRepository}/com/foo/Bar/1.2.3/Bar.jar</my.lib>
</properties>

但我真的很想使用更标准的机制,例如:

<properties>
    <my.lib>${com.foo:Bar:1.2.3}</my.lib>
</properties>

我这样可能吗?


这是一个正确的实现,使用maven-dependency-plugin 属性目标,可以在 pom 中的任何位置使用:

<?xml version="1.0" encoding="UTF-8"?>
<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.stackoverflow</groupId>
    <artifactId>q2359872</artifactId>
    <version>2.0-SNAPSHOT</version>
    <name>q2359872</name>

    <properties>
        <!-- Must be listed in the dependencies section otherwise it will be null. -->
        <my.lib>${org.jmockit:jmockit:jar}</my.lib>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.jmockit</groupId>
            <artifactId>jmockit</artifactId>
            <version>1.11</version>
        </dependency>
    </dependencies>
    <build>
        <defaultGoal>generate-sources</defaultGoal>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.3</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>properties</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- Example usage: -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.2</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                        <phase>generate-sources</phase>
                    </execution>
                </executions>
                <configuration>
                    <executable>echo</executable>
                    <arguments>
                        <argument>path to jar=</argument>
                        <argument>${org.jmockit:jmockit:jar}</argument>
                        <argument>my.lib=</argument>
                        <argument>${my.lib}</argument>
                    </arguments>
                </configuration>
            </plugin>
            <!-- end of Example usage -->
        </plugins>
    </build>
</project>

输出是...

jpyeron@black /projects/wkspc/tmp/foo
$ /cygdrive/c/programs.x86_64/apache-software-foundation/apache-maven-3.1.1/bin/mvn
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building q2359872 2.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.3:properties (default) @ q2359872 ---
[INFO]
[INFO] --- exec-maven-plugin:1.2:exec (default) @ q2359872 ---
path to jar= C:\Documents and Settings\jpyeron\.m2\repository\org\jmockit\jmockit\1.11\jmockit-1.11.jar my.lib= C:\Documents and Settings\jpyeron\.m2\repository\org\jmockit\jmockit\1.11\jmockit-1.11.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.032s
[INFO] Finished at: Wed Sep 17 12:07:18 EDT 2014
[INFO] Final Memory: 10M/153M
[INFO] ------------------------------------------------------------------------
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以使用 Maven 依赖项的路径作为属性吗? 的相关文章

  • spring-data-jpa 和 querydsl 的 Maven 构建问题

    我有一个用于 spring data jpa 和 QueryDsl 的 Eclipse Maven 项目 我似乎对 maven apt plugin 有问题 如果我执行 mvn clean 然后执行 mvn install 它会尝试 处理
  • Maven jdepend 循环构建失败

    当包循环存在时 有没有办法使用 maven 中的 jdepend 插件来使构建失败 我知道你可以用 ant 很容易地做到这一点 但我还没有弄清楚如何用 Maven 做到这一点 谢谢 杰夫 根据已接受的答案 我改进了性能和日志输出 并将其发布
  • 在 GAME 上使用 Spring 3 MVC + Maven 2 找不到映射

    我在尝试将 Spring MVC 和 Maven 集成到 Google AppEngine Web 应用程序中时遇到了一个奇怪的问题 这是我的 web xml
  • Maven:我应该保留还是删除声明的依赖项,这些依赖项也是传递依赖项?

    您认为删除 Maven pom 中可以找到的所有传递依赖项是一个好习惯吗 Example 我的项目依赖于A和B B 也是 A 的传递依赖 我应该将 B 保留在我的 pom 中还是将其删除 哪个最好 拥有所有已知的 jar 甚至是传递性的 j
  • Maven 2 checkstyle 插件版本 2.5 - configLocation 问题

    我在 maven 2 中使用 checkstyle 插件 我现在想要将我的配置文件从默认文件切换为 a 在线文件 或 b 本地文件 我尝试了以下两件事 但都不起作用 有什么建议么 A 本地文件 直接位于我的项目文件夹中的 pom xml 旁
  • 传递到 mvn exec:java 时保留参数间距等

    我有一个启动 Maven exec java 进程的 shell 脚本 exec mvn exec java Dexec mainClass Dexec args 现在可悲的是如果我跑步 myMagicShellScript arg1 ar
  • JPA 2.0 API Maven 工件

    我正在使用 JPA 2 0 我的持久性提供程序是 Hibernate 但是 我只想包含 javax 中的标准 API 但在中心 没有 2 0 工件 我目前正在使用 Hibernate JPA 2 0 工件 但我想使用更标准的东西 这可能吗
  • 多模块 Web 项目中的 Maven:如何将同级模块输出放入 WEB-INF/classes,而不是作为 JAR 放入 WEB-INF/lib?

    我有一个多模块 Maven 项目 默认情况下 当我构建 Web 模块时 它所依赖的所有 JAR 类型的同级模块都会复制到 WEB INF lib 文件夹中 我希望将同级模块的输出放置在 WEB INF classes 文件夹中 而不打包到
  • 如何定制Maven唯一版本字符串?

    我想知道有哪些选项可以自定义 Maven 工件部署时使用的时间戳字符串
  • 为多模块项目创建所有 jar 和源 jar 的存档

    我正在构建一个 Maven 项目 其中有六个模块 我可以自己使用 Maven 或 Ivy 导入它 但其他团队也想使用这些 jar 但他们的做法是将 jar 和源 jar 提交到版本控制 我想生成所有模块及其源代码的 zip tar 程序集
  • 如何查看 Maven pom.xml 文件的传递依赖关系?

    有没有一个 CLI 工具可以用来快速查看 Maven 的传递依赖关系pom xml file 在 CLI 上 使用mvn dependency tree http maven apache org plugins maven depende
  • Maven依赖log4j错误

    大家好 我遇到错误 无缘无故地破坏了我的构建 这是错误消息 error error reading m2 repository com sun jdmk jmxtools 1 2 1 jmxtools 1 2 1 jar error in
  • 使用maven2构建基于autotools的C/C++包

    我正在开发一个 MATLAB Java 和 C C 组件集合 这些组件都可以互操作 但具有明显不同的编译 安装步骤 我们目前不为 MATLAB 编译任何内容 使用 maven2 进行 Java 构建和单元测试 并使用 autotools 进
  • 使用 Maven 外部化 SCM 凭证

    有没有一种方法可以外部化我的 SCM 凭据 以便它们不会存储在项目的 POM 中 问题是 如果它们包含在项目的 POM 中 那么在部署项目时它们将对所有人可见 对于某些 SCM 提供商 您可以在
  • 在maven项目之间共享测试资源

    有一个明确的解决方案可以使用以下命令在 Maven 项目之间共享公共测试代码test jar的目标maven jar plugin插件 参见here https stackoverflow com questions 174560 shar
  • 添加 exec-maven-plugin 的附加路径

    我想向 exec maven plugin 添加一个额外的类路径 除了 classpath之外 我想添加一个额外的路径到包含资源的目录 Users kornp resources 目前 我的 pom 看起来像这样
  • 用于生成 ISO 文件的 Maven 插件

    有没有可以生成ISO镜像的maven插件 我需要获取一些模块的输出 主要是包含 jar 的 zip 文件 并将它们组合成一个 ISO 映像 Thanks 现在有一个 ISO9660 maven 插件可以完成这项工作 https github
  • Maven 或 Ivy 用于管理 Ant 的依赖关系?

    我想知道管理 ant 项目依赖关系的最佳方法 Maven Ant 任务和 Ivy 的优缺点是什么 由于您想要做的是将依赖项管理添加到现有的 Ant 项目中 这正是 Ivy 的设计目的 依赖管理是 Maven 的重要组成部分 但远非全部 Ma
  • Jacoco 代码覆盖率在 Jenkins 上显示覆盖率为 0%

    我已阅读了类似问题的大部分答案 但没有一个适合回答我的问题 我的 pom 文件中的配置文件如下所示
  • 有人让动物嗅探器插件工作吗?

    maven animal sniffer 插件承诺告诉我我的代码是否有任何对 Java 1 6 或更高版本 API 的引用 这对于我们这些在 MacOSX Snow Leopard 只有官方 1 6 上开发但需要交付到 1 5 环境的人来说

随机推荐

  • 为什么使用 Redux Thunk [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 为什么要使用 Redux Thunk 那么我们可以做这样的事情 ReadableAPI getCategories then categories gt console log after
  • 优化的 2x2 矩阵乘法:慢速汇编与快速 SIMD

    Problem 我正在研究高性能矩阵乘法算法 例如 OpenBLAS 或 GotoBLAS 并且我正在尝试重现一些结果 本题涉及矩阵乘法算法的内部内核 具体来说 我正在研究计算C AB where A and B是 2x2 类型的矩阵dou
  • 正则表达式解析带有转义字符的字符串

    我正在从格式化字符串中读取信息 格式如下 foo bar beer 123 lol 之间的所有内容都是我想用正则表达式提取的数据 如果 后跟另一个 如 则该数据必须为 空字符串 目前我正在用这个正则表达式解析它 现在我想到数据中也可能存在
  • 如何通过 pandas 和 yahoo Finance 获取“USDJPY”(货币汇率)?

    我正在学习和使用 pandas 和 python 今天 我正在尝试制作一个汇率表 但我在获取 USDJPY 的价格时遇到了麻烦 当我得到 欧元 美元 的价格时 我的代码如下 eur web DataReader EURUSD X yahoo
  • 在 Android 上检索设备信息

    我的程序针对的是 Android 1 5 我想检索有关设备本身的系统信息 通过搜索 API 我发现很少有有用的类 到目前为止我发现的最好的是Runtime类和一些Build 系统属性 我希望能够获取设备上的内存总量 可用内存量 我不知道是否
  • Thread.sleep和happens-before之间有什么关系?

    我编写了一个简单的应用程序 它有主线程 生产者 和多个消费者线程 我想从主线程广播一条消息 这样所有的消费者线程都会收到它 然而 我有麻烦 我试图理解如何线程睡眠可能与发生之前 这是我的代码 import java util public
  • FFMPEG 不适用于 mp4 和 stdout

    我需要向 mp4 视频添加文本 如果我将结果写入文件 则一切正常 但我想从 ffmpeg 流中读取数据 我运行命令 ffmpeg i sample mp4 filter complex drawtext text Sample Text x
  • Go 中的反射类型和值

    我不太清楚这段代码的行为 func show i interface switch t i type case Person t reflect TypeOf i what t contains v reflect ValueOf i wh
  • 使 javax 验证错误消息更加具体

    抱歉 如果这个问题之前已在某处讨论过 如果有请给我链接 我还没有找到满意的答案 我一直在寻找一种方法 让 javax 验证提供的错误消息更加具体 我当前的 Min 注释消息在 ValidationMessages properties 文件
  • 将嵌入的 Word 文档另存为 PDF

    SCENARIO Word 文档嵌入到 Excel 2011 文件中 我需要将其另存为 pdf 如果是 Excel 2010 那么就不会有问题 因为 Win PC 中的 MS Office 支持 OLE 自动化 我尝试过什么 这是我在 Ex
  • 如何使具有不同子视图的 UITableViewCell 可重用?

    我有一个UITableView我自然地在其中展示 UITableViewCells它们都属于同一类 我们称之为MyCell 所以我有一个MyCell xib one MyCell h和一个MyCell m 不幸的是 该单元格确实包含一个子视
  • 为什么使用 invokedynamic 调用 Java 8 lambda?

    The invokedynamic指令用于帮助虚拟机在运行时确定方法引用 而不是在编译时硬连线它 这对于动态语言很有用 在动态语言中 直到运行时才知道确切的方法和参数类型 但 Java lambda 的情况并非如此 它们被转换为具有明确定义
  • 有人可以解释一下 CSS 媒体查询吗?

    我读过关于他们的文章CSS3 info 但我觉得它解释得不够好 我也无法让他们的示例随着我的屏幕尺寸而改变 我在 Safari FF Chrome 中尝试过 这是一个尚未准备好实施的功能吗 如果我想在浏览器窗口宽度小于1024px时调整一些
  • 将保管库机密注入 Kubernetes Pod 环境变量

    我正在尝试在需要 PostgresSQL 的 Kubernetes 环境中安装 Sonarqube 我正在使用外部 Postgres 实例 并且在 Vault 中设置了凭证 kv 密钥 SonarQube helm Chart 在容器中创建
  • Android - 触摸监听器触发两次

    在我的代码中 按钮的 ontouch 侦听器被触发两次 请在下面找到代码 我正在使用谷歌 API 2 2 java文件中的代码 submit button Button findViewById R id submit submit but
  • 拉伸和缩放 CSS 背景

    有没有办法让 CSS 中的背景拉伸或缩放以填充其容器 Use the CSS 3财产background size my container background size 100 auto width and height can be
  • 清除Python中所有lru_cache

    我在 python 中有一些带有 lru cache 缓存的函数 例如 lru cache maxsize None def my function 虽然我可以单独清除缓存 例如my function cache clear 有没有办法一次
  • 将字符串转换为私钥和公钥 (RSA)

    私钥和公钥的两个字符串是 static String Public MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDH wPrKYG1KVlzQUVtBghR8n9d n zcShSZo0 3KgyVdOea7
  • Mongoose批量更新操作

    有没有办法对猫鼬的集合进行批量更新 我发现的策略使用原始收集驱动程序 如下所示 var bulk Person collection initializeOrderedBulkOp bulk find query update update
  • 我可以使用 Maven 依赖项的路径作为属性吗?

    我的 pom xml 中有一个 Maven 依赖项 如下所示