ฉันรู้ว่ามีรายการคุณสมบัติของ Maven ที่กำหนดไว้ล่วงหน้าทั้งหมด (คุณก็รู้ว่าชอบproject.build.sourceEncoding
หรือproject.build.sourceDirectory
) ฉันเคยเห็นรายการ แต่ฉันไม่พบอีกครั้ง
ฉันรู้ว่ามีรายการคุณสมบัติของ Maven ที่กำหนดไว้ล่วงหน้าทั้งหมด (คุณก็รู้ว่าชอบproject.build.sourceEncoding
หรือproject.build.sourceDirectory
) ฉันเคยเห็นรายการ แต่ฉันไม่พบอีกครั้ง
คำตอบ:
คุณหมายถึงอันนี้หรือเปล่า?
ฉันย้ายเนื้อหาไปที่ repo GitHub ด้วย:
https://github.com/cko/predefined_maven_properties/blob/master/README.md
[WARNING] The expression ${artifactId} is deprecated. Please use ${project.artifactId} instead.
แต่รวมถึงส่วนใหญ่;)
ลองดูที่ส่วน 9.2 .: คุณสมบัติ Mavenหนังสือออนไลน์ฟรีMaven: อ้างอิงที่สมบูรณ์
การดู "POM ที่มีประสิทธิภาพ" อาจช่วยได้เช่นกัน ตัวอย่างเช่นหากคุณต้องการทราบว่าเส้นทางนี้มีไว้เพื่ออะไร${project.build.sourceDirectory}
คุณจะพบ XML ที่เกี่ยวข้องใน POM ที่มีประสิทธิภาพเช่น:
<project>
<build>
<sourceDirectory>/my/path</sourceDirectory>
มีประโยชน์เช่นกัน - คุณสามารถทำการประเมินคุณสมบัติแบบเรียลไทม์ผ่านการดำเนินการบรรทัดคำสั่งmvn help:evaluate
ในขณะที่อยู่ใน dir เดียวกันกับ POM
ผมคิดว่าเป็นสถานที่ที่ดีที่สุดที่จะดูเป็นซูเปอร์ 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
(หากต้องการอ้างอิงไดเร็กทอรีทรัพยากรโปรดดูคำถาม stackoverflow นี้ )
<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>
ฉันเบื่อที่จะเห็นหน้านี้พร้อมกับการอ้างอิงถึงหน้า Codehaus ที่เลิกใช้ไปแล้วในตอนนี้ดังนั้นฉันจึงถามในรายชื่ออีเมลของผู้ใช้ Mavenและได้รับคำตอบที่เป็นปัจจุบันมากขึ้น
ฉันจะบอกว่าคำตอบที่ดีที่สุด (และเชื่อถือได้มากที่สุด) ที่มีอยู่ในลิงก์ของฉันด้านบนคือคำตอบที่Hervé BOUTEMY:
นี่คือข้อมูลอ้างอิงหลัก: http://maven.apache.org/ref/3-LATEST/maven-model-builder/
ไม่ได้อธิบายทุกสิ่งที่สามารถพบได้ใน POM หรือในการตั้งค่าเนื่องจากมีข้อมูลมากมาย แต่จะชี้ไปที่ POM และตัวบอกการตั้งค่าและอธิบายทุกสิ่งที่ไม่ใช่ POM หรือการตั้งค่า
ลิงค์นี้แสดงวิธีแสดงรายการคุณสมบัติที่ใช้งานทั้งหมด: 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>
${...}
)