2010-12-10 47 views
85

我知道有一個所有預定義的Maven屬性列表(你知道像project.build.sourceEncodingproject.build.sourceDirectory)。我曾經看到過這個列表,但我再也找不到它了。哪裏是預定義的Maven屬性列表

回答

89
+0

是。謝謝。 – Martin 2010-12-12 08:19:59

+6

Codehaus現在已經死了。任何人有新的鏈接? – digitaljoel 2015-06-15 21:42:56

+14

互聯網檔案館仍然有CodeHaus鏈接:https://web.archive.org/web/20150520200505/https://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide – 2015-06-16 16:07:52

19

綜觀 「有效POM」 可能會幫助了。舉例來說,如果你想知道的路徑是什麼${project.build.sourceDirectory}

,你會發現在有效POM相關的XML,如: <project> <build> <sourceDirectory>/my/path</sourceDirectory>

也是有幫助的 - 你可以做一個真正的通過命令行執行mvn help:evaluate,同時在與POM相同的目錄中對屬性進行實時評估。

+0

非常有幫助。不錯的工作 – Tiina 2017-01-05 01:27:56

6

我認爲最好看的地方是Super POM

作爲一個例子,在寫入時,所鏈接的參考示出了一些線32之間的特性 - 48.

這樣做的解釋是遵循的XPath作爲.分隔屬性。

因此,舉例來說:

${project.build.testOutputDirectory} == ${project.build.directory}/test-classes

和:

${project.build.directory} == ${project.basedir}/target

因此將它們結合起來,我們發現:

${project.build.testOutputDirectory} == ${project.basedir}/target/test-classes

(要引用的資源目錄(S),見this stackoverflow question


<project> 
    <modelVersion>4.0.0</modelVersion> 
    . 
    . 
    . 
    <build> 
     <directory>${project.basedir}/target</directory> 
     <outputDirectory>${project.build.directory}/classes</outputDirectory> 
     <finalName>${project.artifactId}-${project.version}</finalName> 
     <testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory> 
     <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory> 
     <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory> 
     <testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory> 
     <resources> 
      <resource> 
       <directory>${project.basedir}/src/main/resources</directory> 
      </resource> 
     </resources> 
     <testResources> 
      <testResource> 
       <directory>${project.basedir}/src/test/resources</directory> 
      </testResource> 
     </testResources> 
     . 
     . 
     . 
    </build> 
    . 
    . 
    . 
</project> 
4

我厭倦了一起倒閉Codehaus的網頁及其副已經陳舊引用看到這個頁面,所以我問的Maven Users mailing list並獲得了一些更新的答案。

我要說的是,包含在上述我的鏈接的答案最好的(和最權威的)是一個貢獻的埃爾韋BOUTEMY:

這裏是核心參考: http://maven.apache.org/ref/3-LATEST/maven-model-builder/

它不解釋可在POM或設置中找到的所有信息, ,因爲有這麼多信息可用,但它指向POM和 設置描述符並解釋了所有不是POM或 設置

+0

請注意,[鏈接只是答案](http://meta.stackoverflow.com/tags/link-only-answers/info)不鼓勵,所以答案應該是搜索解決方案的終點(與另一個引用的中途停留時間相比,這些引用往往會隨着時間推移而變得過時)。請考慮在這裏添加一個獨立的簡介,保持鏈接作爲參考 – kleopatra 2015-09-06 08:49:50

+3

這個問題要求鏈接,所以我認爲你的關注是錯位的。這個問題不問「我該如何做X」,而是「我在哪裏可以找到X」。 – 2015-09-08 19:00:16

+1

哎呀,你是對的 - 這是不適合這個網站的問題:-)感謝您的領導 - 投票結束 – kleopatra 2015-09-08 22:37:33

1

此鏈接顯示瞭如何列出所有活動的性質: http://skillshared.blogspot.co.uk/2012/11/how-to-list-down-all-maven-available.html

綜上所述,下面的插件定義添加到您的POM,然後運行mvn install

<plugin> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.7</version> 
    <executions> 
     <execution> 
      <phase>install</phase> 
      <configuration> 
       <target> 
        <echoproperties /> 
       </target> 
      </configuration> 
      <goals> 
       <goal>run</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 
相關問題