maven pom:application.main.class和exec.main.class之间的区别

时间:2018-12-18 13:46:04

标签: java maven pom.xml

我已经搜索并阅读了maven docs,但没有找到答案。我是Java的新手,所以如果重复,请原谅我。

在我们公司的项目中,我看到一个pom定义了以下元素:

    <properties>
      <application.main.class>com.xxx.classfoo</application.main.class>
      <exec.main.class>com.yyy.classbar</exec.main.class>
      ...others...
    </properties>

所以问题是它们之间有什么区别?他们的名字看起来很像!

2 个答案:

答案 0 :(得分:1)

这些是专门为您的项目定义的自定义属性-有关更多信息:https://maven.apache.org/pom.html#Properties

尝试在pom.xml中搜索${application.main.class},您将看到它的使用位置

答案 1 :(得分:1)

maven docs引用:

  

Maven属性是值占位符,就像Ant中的属性一样。通过使用符号$ {X}(其中X是属性),可以在POM中的任何位置访问它们的值。

如上所述,它们只是占位符,可以使用$ {propertyName}进行引用。

现在可能需要引用由application.main.classexec.main.class定义的类,这就是为什么要适当定义它们的原因,并且无论在何处使用它们,都可以使用$ {application.main来引用。 class}或$ {exec.main.class}。