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

Maven:如果pom.xml中的语句在property标记中

陶烨赫
2023-03-14

如果设置了环境变量,我想设置一个属性。我在上面搜索了很多,我发现的都是类似于下面代码的东西,但我总是得到错误:

[FATAL]不可解析的POM y:\maven\parent-pom\POM.xml:TEXT后面必须紧随END_TAG而不是START_TAG(位置:START_TAG s een...roperties“\r\n
classpatherf=”maven.plugin.classpath“/>...@29:55)@第29行,第55列

这是我正在尝试的代码,它在pom.xml中,我运行了命令-

谢谢,伊莱

    <distributionManagement>
       .....
    </distributionManagement>

    <properties>
          <tasks>
        <taskdef resource="net/sf/antcontrib/antcontrib.properties"
          classpathref="maven.plugin.classpath" />

        <if>
           <condition>
             <equals arg1="${env.WAS60_HOME}" arg2=""\>
           </condition>
           <then>
             <was60.home>${env.WAS60_HOME}</was60.home>
             <javac>${was60.home}/java/bin/javac</javac>
           </then>
        </if>

         <if>
           <condition>
             <equals arg1="${env.WAS85_HOME}" arg2=""\>
           </condition>
           <then>
             <was85.home>${env.WAS85_HOME}</was60.home>
             <javac>${was85.home}/java/bin/javac</javac>
           </then>
        </if>
      </tasks>
</properties>
    <profiles>
       <profile>
    <id>was.base.v60</id>
            <dependencies>
               <dependency>
                 ....
                  <systemPath>${was60.home}/java/jre/lib/xml.jar</systemPath>
               </dependency>
               .....
            </dependencies>
        </profile>
        <profile>
    <id>was.base.v85</id>
            <dependencies>
               <dependency>
                 ....
                  <systemPath>${was85.home}/java/jre/lib/xml.jar</systemPath>
               </dependency>
               .....
            </dependencies>
        </profile>
    </profiles>

共有1个答案

诸嘉澍
2023-03-14

更好的方法是使用配置文件激活。

<profiles>
  <profile>
    <id>was.base.v60</id>
    <activation>
      <property>
        <name>env.WAS60_HOME</name>
      </property>
    </activation>
    <dependencies>
      <dependency>
        ....     
        <systemPath>${env.WAS60_HOME}/java/jre/lib/xml.jar</systemPath>
      </dependency>
      .....    
    </dependencies>
  </profile>
  <profile>
    <id>was.base.v85</id>
    <activation>
      <property>
        <name>env.WAS85_HOME</name>
      </property>
    </activation>
    <dependencies>
      <dependency>
        ....     
        <systemPath>${env.WAS85_HOME}/java/jre/lib/xml.jar</systemPath>
      </dependency>
      .....    
    </dependencies>
  </profile>
</profiles>

我使用配置文件的首选方式是在POM中设置一组默认属性,然后使用设置文件中的配置文件按需覆盖这些属性。

这种方法很容易通过使用“-s”和“-p”命令行参数显式地实现:

mvn -s $PROJECT_SETTINGS -P myProfile ....
<project>
  <properties>
     <my.property1>hello</my.property1>
     <my.property2>world</my.property2>
     ..
  </properties>
  ..

  <build>
    <profiles>
      <profile>
        <id>build_in_spanish</id>
        <properties>
          <my.property1>hola</my.property1>
          <my.property2>mundo</my.property2>
          ..
        </properties>
      </profile>
      <profile>
        <id>build_in_irish</id>
        <properties>
          <my.property1>dia dhuit</my.property1>
          <my.property2>an domhain</my.property2>
          ..
        </properties>
      </profile>
    <profiles>
  </build>
</project>
mvn -P build_in_spanish ...
    null
 类似资料:
  • 问题内容: 当我发现一段代码被一个块包围时,我正在浏览一些基本的Java对象。以下代码来自String类中的toLowerCase()方法。 有人可以解释一下该块的用途以及该语法的来源吗?除非在三元运算符中使用过,否则在Java中像这样的单词之后我还没有看到冒号。 谢谢! 编辑:更新标题以正确匹配已回答的问题。 问题答案: 在这里,只是一个标签。该语法允许人们摆脱外部循环,并模拟某种形式的语句。语

  • 我试图在pom.xml中将项目源和目标设置为Java1.8,结果发现这两种方法都可以: > 在属性标记中设置: 在插件中配置: 给我一个选择,我更喜欢选项1,因为它更短,但这两个之间的真正区别是什么?

  • 问题内容: 我正在使用nltk,因此我想创建自己的自定义文本,就像nltk.books上的默认文本一样。但是,我只是想起像 我想发现任何输入“文本”的方式: python或nltk的哪种方法允许我执行此操作。更重要的是,我如何消除标点符号? 问题答案: 这实际上是在nltk.org的主页上:

  • 我使用OpenNLP Java API进行句子标记化,它使用空格字符来标记句子,并拆分每个单词。 有没有什么方法可以让我跳过一些特定单词的分词或标记化。 例如在句子中。“一只敏捷的棕色狐狸跳过懒狗”。OpenNLP将句子拆分/标记为 一只 快速 棕色 狐狸 跳过 懒惰的 狗 我想跳过单词“Quick brown Fox”和“Lazy Dog”的标记化,因此预期的输出将是 一只 快速的棕色狐狸 跳过

  • 问题内容: 在配置我的时,我必须配置一个插件。我发现标签可以插入或元素内。我很困惑! 和之间有什么区别? 问题答案: 从 Maven文档中: pluginManagement :是在侧面插件中可以看到的元素。插件管理包含插件元素的方式几乎相同,除了不是为该特定项目构建配置插件信息,而是要配置从该继承的项目构建。但是,这仅配置在子级的plugins元素内实际引用的插件。子级有权覆盖pluginMan