当前位置: 首页 > 知识库问答 >
问题:

如何访问元素从settings.xmlpom.xml与Maven?

卢英范
2023-03-14

根据https://maven.apache.org/pom.html#properties应该可以使用${settings.x}访问元素

然而,当我尝试

  <profiles>
    <profile>
      <activation>
        <file>
          <exists>${settings.localRepository}/path/to/file</exists>
        </file>
      </activation>
    </profile>
  </profiles>

在我的pom.xml中,它不会在有效pom.xml.中被替换当我用${user.home}/. m2/repository替换${settings.localRepository}时,它可以正常工作,但这不是我想要的。我能做些什么来解决这个问题吗?(用Apache Maven 3.6.0测试过。)

背景信息:我有一个在线maven存储库中不存在的依赖项,我无法更改它。它必须由用户编译,并且可以安装到本地存储库。我尝试在pom中自动执行此操作,而不是手动执行此操作。xml。为此,如果本地存储库中不存在依赖项,我必须忽略它。因此,配置文件将检查文件是否存在于本地存储库中。没有概要文件,maven甚至不会开始生命周期,因为依赖关系无法解决。当然,项目不会在第一次编译pom。执行xml。但所有依赖项都会自动安装,项目将在第二次通过时编译。我知道这不是一个干净的解决方案,但我认为这比在编译此项目之前告诉用户手动编译和安装依赖项xy要好。我还包括一个构建脚本,该脚本首先运行mvn clean initialize来安装依赖项,然后运行mvn clean compile。

共有1个答案

卫成和
2023-03-14

将外部依赖项的源放在自己的项目中,如:

+- main
   +- pom.xml ... <packaging>pom...<module>external...<module>internal
   |
   +- external
   |  +- ... Maven dirs as usual ...
   |  + pom.xml
   |
   +- internal
      +- ... Maven dirs as usual ...
      +- pom.xml ... <dependency>external

这样,在构建主Reactor时,MavenReactor负责项目的构建顺序(在这种情况下,先构建外部,然后构建内部),您可以忘记处理设置。xml、存储库、配置文件或属性。

 类似资料:
  • 问题内容: 我有一个网页,其中iframe内有一个texarea。我需要从其子页面javascript读取此textarea的值。目前,通过在javascript中使用,我能够提取父页面中除iframe中的textarea之外的所有控件的值。 父页面中的框架ID和框架名称在运行时会更改,因此我们无法使用框架ID /框架名称作为参考。 问题答案: 如果您有HTML 和JavaScript 现在是对文

  • 问题内容: 我搞砸了SVG,希望能在Illustrator中创建SVG文件并使用Javascript访问元素。 这是Illustrator推出的SVG文件(它似乎也向我删除的文件的开头添加了一些垃圾) 正如您可能看到的那样,每个元素都有一个ID,我希望能够使用Javascript访问单个元素,以便我可以更改Fill属性并响应诸如click之类的事件。 HTML是基本的 我想这真的是两个问题。 与使

  • 我正在编写一个jQuery插件,它需要能够在iframe中针对DOM元素运行。我现在只是在本地测试这个(即url是file://.../example.html),在Chrome中,我一直按“安全错误:未能从”htmliframeElement“中读取”内容文档“属性:阻止一个来源为”null“的框架访问跨来源的框架。”在Safari中,我只得到一个空文档。 如果父文件和iframe文件都从我的本

  • 问题内容: 我正在从URL获取天气信息。 我得到的是: 如何访问所需的任何元素? 如果我这样做:我收到错误消息: 字符串索引必须是整数,而不是str。 问题答案: 您从url中获得的是一个json字符串。而且您不能直接用索引解析它。您应该将其转换为dict ,然后可以使用index对其进行解析。 与其使用中间方式将其保存到内存,然后将其读取为,不如直接从文件中加载它:

  • [ ]操作符可以对向量进行读和写,这和apstring访问字符类似。同样和apstring一样,索引从0开始,count[ 0 ]指的是向量中的第0个元素,count[ 1 ]指的是向量中的第1个元素。[ ]操作符可以应用在任何表达式中。 count[0] = 7; count[1] = count[0] * 2; count[2]++; count[3] -= 60; 所有的这些语句都是合法的