ฉันจะใช้บรรทัดคำสั่ง maven เพื่อตรวจสอบว่าไฟล์ settings.xml ใดที่ Maven กำลังทำการรวบรวม?
ฉันจะใช้บรรทัดคำสั่ง maven เพื่อตรวจสอบว่าไฟล์ settings.xml ใดที่ Maven กำลังทำการรวบรวม?
คำตอบ:
เริ่ม maven ด้วยอ็อพชัน -X (debug) และตรวจสอบจุดเริ่มต้นของเอาต์พุต ควรมีสิ่งเช่นนี้:
...
[INFO] Error stacktraces are turned on.
[DEBUG] Reading global settings from c:\....\apache-maven-3.0.3\conf\settings.xml
[DEBUG] Reading user settings from c:\....\.m2\settings.xml
[DEBUG] Using local repository at C:\....\repository
...
(ฉันลบชื่อไดเรกทอรีดั้งเดิม)
ความคิดเห็นของคุณถึงคำตอบของ cletus (ถูกต้อง) แสดงว่ามีไฟล์การตั้งค่า Maven หลายไฟล์ที่เกี่ยวข้อง
Maven ใช้ไฟล์การตั้งค่าหนึ่งหรือสองเสมอ จำเป็นต้องใช้การตั้งค่าส่วนกลางที่กำหนดใน ($ {M2_HOME} /conf/settings.xml) ไฟล์การตั้งค่าผู้ใช้ (กำหนดใน $ {user.home} /. m2 / settings.xml) เป็นทางเลือก การตั้งค่าใด ๆ ที่กำหนดไว้ในการตั้งค่าผู้ใช้จะมีความสำคัญเหนือกว่าการตั้งค่าร่วมที่เกี่ยวข้อง
คุณสามารถแทนที่ตำแหน่งของการตั้งค่าส่วนกลางและผู้ใช้จากบรรทัดคำสั่งตัวอย่างต่อไปนี้จะตั้งค่าการตั้งค่าร่วมเป็นc: \ global \ settings.xmlและการตั้งค่าผู้ใช้เป็นc: \ user \ settings.xml :
mvn install --settings c:\user\settings.xml
--global-settings c:\global\settings.xml
ขณะนี้ไม่มีคุณสมบัติหรือวิธีการสร้างไฟล์ผู้ใช้และไฟล์การตั้งค่าทั่วโลกที่ใช้กับ Maven ในการเข้าถึงค่าเหล่านี้คุณจะต้องแก้ไข MavenCli และ / หรือ DefaultMavenSettingsBuilder เพื่อฉีดตำแหน่งไฟล์ลงในวัตถุการตั้งค่าที่ได้รับการแก้ไข
คุณสามารถใช้ปลั๊กอินช่วยเหลือ mavenเพื่อบอกเนื้อหาของผู้ใช้และไฟล์การตั้งค่าทั่วโลกของคุณ
mvn help:effective-settings
จะขอ Maven จะคายออกการตั้งค่าของผู้ใช้และทั่วโลกรวมกัน
นี่คือไฟล์กำหนดค่าสำหรับ Maven สามารถระบุได้สองระดับ:
ระดับผู้ใช้ ไฟล์ settings.xml นี้มีการกำหนดค่าสำหรับผู้ใช้คนเดียวและโดยปกติจะมีให้ใน $ {user.home} /. m2 / settings.xml
NOTE: This location can be overridden with the CLI option:
-s /path/to/user/settings.xml
ระดับโลก ไฟล์ settings.xml นี้มีการกำหนดค่าสำหรับผู้ใช้ Maven ทั้งหมดบนเครื่อง (สมมติว่าพวกเขาทั้งหมดใช้การติดตั้ง Maven เดียวกัน) โดยปกติจะมีให้ใน $ {maven.home} /conf/settings.xml
NOTE: This location can be overridden with the CLI option:
-gs /path/to/global/settings.xml
M2_HOME
ตัวแปรสภาพแวดล้อมสำหรับคนทั่วโลก ดูการอ้างอิงการตั้งค่า :
settings
องค์ประกอบในsettings.xml
แฟ้มที่มีองค์ประกอบที่ใช้ในการกำหนดค่าที่กำหนดค่าดำเนินการ Maven ในรูปแบบต่างๆเช่นpom.xml
แต่ไม่ควรนำมารวมไว้ในโครงการที่เฉพาะเจาะจงใด ๆ หรือแจกจ่ายให้กับผู้ชม สิ่งเหล่านี้รวมถึงค่าต่างๆเช่นที่ตั้งโลคัลที่เก็บโลคัลเซิร์ฟเวอร์ที่เก็บข้อมูลรีโมตสำรองและข้อมูลการพิสูจน์ตัวตน มีสองตำแหน่งที่ไฟล์ settings.xml อาจทำงานอยู่:
- การติดตั้ง Maven:
$M2_HOME/conf/settings.xml
- การติดตั้งของผู้ใช้:
${user.home}/.m2/settings.xml
the former settings.xml are also called global settings, the latter settings.xml are referred to as user settings. If both files exists, their contents gets merged, with the user-specific settings.xml being dominant.
วิธีที่รวดเร็วและสกปรกเพื่อพิจารณาว่า Maven ใช้ settings.xml ที่ต้องการหรือไม่นั้นจะทำให้ xml เป็นโมฆะและเรียกใช้คำสั่ง maven ที่ปลอดภัยที่ต้องการ settings.xml
หากมันอ่านsettings.xml นี้ Maven จะรายงานข้อผิดพลาด: "ข้อผิดพลาดในการอ่าน settings.xml ... "