วิธีเปลี่ยนค่าของตัวแปร $ {user} ที่ใช้ในเทมเพลต Eclipse


260

แทน hardcoding เทมเพลต @author เริ่มต้นฉันต้องการให้ Eclipse ใช้ชื่อจริงของผู้ใช้ที่นำมาจากข้อมูลบัญชี (ใน Linux - แต่โซลูชัน Windows ยินดีต้อนรับเช่นกัน) การป้อนที่ใดก็ได้ในการกำหนดค่า Eclipse ก็เป็นที่ยอมรับเช่นกันฉันไม่สามารถหาสถานที่ที่เหมาะสมได้


1
หากคุณสงสัยว่าตัวแปรเริ่มต้นสามารถรับได้จากการเรียก: System.getProperty ("user.name") และตำแหน่งที่ Java ใช้มันขึ้นอยู่กับระบบ
Maciej Biłas

บทความนี้แสดงลำดับที่ eclipse ใช้เพื่อกำหนดค่าของตัวแปรที่ฉันพบว่ามีประโยชน์ martijndashorst.com/blog/2006/04/21/…
Steven Mai

ลิงค์ของ StevenMai นั้นตายแล้ว ... นี่เป็นเวอร์ชั่นที่เก็บถาวร: web.archive.org/web/20180927010751/http://…
Thinowngeek

คำตอบ:


285

ดูเหมือนว่าทางออกที่ดีที่สุดของคุณคือการกำหนดuser.nameตัวแปรjava อีกครั้งที่บรรทัดคำสั่งของคุณหรือใช้eclipse.iniไฟล์ในไดเรกทอรีรากติดตั้ง eclipse ของคุณ

ดูเหมือนว่าจะทำงานได้ดีสำหรับฉัน:

-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256M
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Duser.name=Davide Inglima
-Xms40m
-Xmx512m    

ปรับปรุง:

http://morlhon.net/blog/2005/09/07/eclipse-username/เป็นลิงค์ที่ตายแล้ว ...

นี่คือใหม่: https://web.archive.org/web/20111225025454/http://morlhon.net:80/blog/2005/09/07/eclipse-username/


16
ความเสี่ยงคือสิ่งนี้จะทำให้ปลั๊กอินที่จำเป็นต้องรู้ ID ผู้ใช้ (ซึ่งเป็นค่าที่เป็นเอกสารของคุณสมบัติ user.name) มันจะดีถ้ามีวิธีที่ดีกว่าในการปรับค่า Eclipse จะใช้สำหรับตัวแปรนั้น
โรคหายนะ

30
สำหรับฉัน"ทำให้เกิดปัญหาฉันต้องทำ: -Duser.name=Ron Kitayเพื่อให้มันทำงานอย่างถูกต้อง
RonK

27
โซลูชันที่ดีกว่าจะทำให้ Eclipse มีตัวแปรอื่นเช่น $ {programmer} ที่สามารถกำหนดได้และใช้ในเทมเพลต (หรืออนุญาตให้ผู้ใช้สร้างตัวแปรของตัวเอง!) แต่นี่คือ Eclipse ถอนหายใจ
Scott Biggs

3
-Duser.nameต้องมาหลังจาก-vmargsธง (ทดสอบกับคราสดาวอังคาร)
Jan Chimiak

2
ลิงก์ Dead, นี่เป็นที่เก็บถาวร: web.archive.org/web/20111225025454/http://morlhon.net:80/blog/…
nloveladyallen

96

เปิด Eclipse ไปที่ Window -> Preferences -> Java -> Style Code -> เทมเพลต Code -> Comments -> Types จากนั้นกดปุ่ม 'แก้ไข' คุณสามารถเปลี่ยนชื่อในความคิดเห็นที่สร้างจาก @Author $ {user} เป็น @Author Rajish


41
นั่นไม่ใช่คำตอบสำหรับคำถาม
Rajish

15
@ นับถือ: คุณพูดถูก แต่ก็อาจเป็นวิธีแก้ปัญหาที่เหมาะสมเท่านั้น หลังจากประเมินตัวเลือกมันเป็นสิ่งที่ฉันทำ
Scott Biggs

13
นี่เป็นคำตอบที่ดีที่สุดในความคิดของฉัน - แทนที่จะยุ่งกับ command line และ eclipse.ini ซึ่งขึ้นอยู่กับแพลตฟอร์มและยุ่งยากเกินไปสำหรับงานที่พวกเขาทำสำเร็จหนึ่งมักจะต้องการตั้งค่าต่อโครงการ - และทำใน คุณสมบัติของโครงการที่แนะนำข้างต้นอาจเป็นวิธีเดียวที่จะทำได้
พฤศจิกายน

2
ฉันคิดว่าไม่ใช่คำตอบที่ถูกต้องเพราะมีภาษาและบรรณาธิการจำนวนมากที่ใช้ Eclipse ไม่ใช่เฉพาะ Java เพื่อที่จะแก้ปัญหาสำหรับคนที่ใช้ Eclipse เพื่อแก้ไข Java ไม่ใช่ภาษาอื่น ๆ ทั้งหมด
ลูคัสกาเบรียลซานเชซ

4
โซลูชันนี้ยังไม่เหมาะสมถ้าคุณใช้คำจำกัดความแม่แบบที่ใช้ร่วมกันกับผู้ใช้รายอื่น
Christopher Barber


18

โซลูชั่น EGit

หนึ่งคาดว่าจะสร้างหรือเปลี่ยนแปลงตัวแปรแม่แบบในโครงการพื้นที่ทำงานหรือสภาพแวดล้อมเป็นคุณสมบัติ Eclipse มาตรฐาน น่าเศร้าที่มันไม่ใช่ ยิ่งไปกว่านั้นเนื่องจากปลั๊กอิน Eclipse สามารถกำหนดตัวแปรและเทมเพลตใหม่ได้จึงควรมีปลั๊กอินที่ให้โซลูชัน หากพวกเขาพวกเขาจะต้องหายาก mmm-TemplateVariableซึ่งมีอยู่ใน Eclipse Marketplace เป็นขั้นตอนในทิศทางที่ถูกต้องสำหรับผู้ใช้ Maven ให้ความสามารถในการรวมรุ่น artifactId ฯลฯ ในเทมเพลต

โชคดีที่EGitซึ่งเป็นเครื่องมือ Eclipse สำหรับ Git นั้นมีความยืดหยุ่นในการรวมตัวแปรต่าง ๆ มากมายในเทมเพลตของโค้ด ข้อกำหนดเพียงอย่างเดียวคือโครงการของคุณใช้ Git หากคุณไม่ได้ใช้ Git แต่จริงจังกับการพัฒนาซอฟต์แวร์ตอนนี้เป็นเวลาของการเรียนรู้ ( หนังสือ Pro Git ) หากคุณถูกบังคับให้ใช้ระบบควบคุมเวอร์ชันดั้งเดิมให้ลองเปลี่ยนใจ

ขอบคุณความพยายามของharmsk , EGit 4.0 และสูงกว่ารวมถึงความสามารถในการใช้ค่าคีย์การกำหนดค่า Git ในแม่แบบ สิ่งนี้ช่วยให้การตั้งค่าแม่แบบขึ้นอยู่กับการตั้งค่าที่เก็บ (โครงการ) การตั้งค่าผู้ใช้ (บัญชี) และ / หรือการตั้งค่าทั่วโลก (เวิร์กสเตชัน)

ตัวอย่างต่อไปนี้แสดงวิธีตั้งค่า Eclipse และ Git สำหรับเวิร์กสเตชันการพัฒนาที่มีผู้ใช้หลายคนและใช้คีย์การกำหนดค่า Git ที่กำหนดเองแทน${user}เพื่อให้มีความยืดหยุ่นมากขึ้น แม้ว่าตัวอย่างจะขึ้นอยู่กับการติดตั้ง Windows 10 ของ Eclipse Mars และ Git สำหรับ Windows ตัวอย่างนี้ใช้กับ Linux และ OSX ที่รัน Eclipse และ Git โดยใช้เครื่องมือบรรทัดคำสั่งที่เกี่ยวข้อง

เพื่อหลีกเลี่ยงความสับสนที่อาจเกิดขึ้นระหว่างuser.nameคีย์การกำหนดค่าของ Git และuser.nameคุณสมบัติระบบของ Java คีย์การกำหนดค่า Git ที่กำหนดเองuser.author- จะถูกใช้เพื่อระบุชื่อผู้แต่งและ / หรือข้อมูลประจำตัว

การกำหนดค่าเทมเพลต

รูปแบบของตัวแปรเทมเพลต Git มีดังนี้

${<name>:git_config(<key>)}

โดยที่<name>เป็นชื่อตัวแปรใด ๆ และ<key>เป็นคีย์การกำหนดค่า Git ที่ควรใช้ค่า ระบุว่าการเปลี่ยนแม่แบบความคิดเห็น→ประเภทเป็น

/**
 * @author ${author:git_config(user.author)}
 *
 * ${tags}
 */

ตอนนี้จะพยายามแก้ไขชื่อผู้แต่งจากuser.authorคีย์การกำหนดค่าของ Git หากไม่มีการกำหนดค่าเพิ่มเติมความคิดเห็นที่สร้างขึ้นใหม่จะไม่รวมชื่อหลังจาก@authorเนื่องจากยังไม่ได้กำหนด

การกำหนดค่า Git

จากบรรทัดคำสั่ง

การกำหนดค่าระบบ Git - ขั้นตอนการกำหนดค่านี้ทำการเปลี่ยนแปลงการกำหนดค่าทั่วทั้งระบบของ Git ที่ใช้กับบัญชีทั้งหมดในเวิร์กสเตชันเว้นแต่จะถูกแทนที่โดยผู้ใช้หรือการตั้งค่าที่เก็บ เนื่องจากการกำหนดค่าทั้งระบบเป็นส่วนหนึ่งของแอปพลิเคชัน Git พื้นฐาน (เช่น Git สำหรับ Windows) การเปลี่ยนแปลงจึงต้องใช้สิทธิ์ผู้ดูแลระบบ เรียกใช้ Git Bash, cmd หรือ PowerShell ในฐานะผู้ดูแลระบบ คำสั่งต่อไปนี้จะตั้งค่าผู้เขียนทั้งระบบ

git config --system user.author “SET ME IN GLOBAL(USER) or REPOSITORY(LOCAL) SETTINGS”

จุดประสงค์ของ "ผู้แต่ง" นี้คือเพื่อใช้เป็นเครื่องเตือนใจว่าควรตั้งไว้ที่อื่น สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อมีการใช้บัญชีผู้ใช้ใหม่บนเวิร์กสเตชัน

เพื่อตรวจสอบการตั้งค่านี้สร้างโครงการ Java ว่างที่ใช้ Git หรือเปิดโครงการที่ใช้ Git ที่มีอยู่ สร้างคลาสและใช้แหล่งที่มา→สร้างองค์ประกอบความคิดเห็นจากเมนูบริบทALT-SHIFT-Jหรือเริ่มความคิดเห็น JavaDoc @authorแท็กผลลัพธ์ควรตามด้วยคำเตือน

การเปลี่ยนแปลงการกำหนดค่าที่เหลือสามารถทำได้โดยไม่มีสิทธิ์ผู้ดูแลระบบ

การกำหนดค่า Git Global (ผู้ใช้) - ทั่วโลกหรือผู้ใช้การกำหนดค่าเป็นการเชื่อมโยงกับผู้ใช้เฉพาะและจะแทนที่การกำหนดค่าทั่วทั้งระบบ การตั้งค่าเหล่านี้ใช้กับโครงการที่ใช้ Git ทั้งหมดเว้นแต่จะถูกแทนที่ด้วยการตั้งค่าที่เก็บ หากชื่อผู้แต่งแตกต่างกันเนื่องจากประเภทโครงการต่าง ๆ เช่นสำหรับงานการมีส่วนร่วมโอเพนซอร์สหรือส่วนตัวให้ตั้งค่าการใช้งานบ่อยที่สุดที่นี่

git config --global user.author “Mr. John Smith”

หลังจากกำหนดค่าทั่วโลกแล้วให้กลับไปที่โครงการทดสอบที่ใช้ก่อนหน้านี้และแสดงความคิดเห็นในชั้นเรียน @authorแท็กในขณะนี้ควรจะแสดงการตั้งค่าระดับโลก

การกำหนดค่า Git Repository (Local) - สุดท้ายสามารถใช้ที่เก็บข้อมูลหรือการกำหนดค่าท้องถิ่นเพื่อกำหนดค่าผู้เขียนสำหรับโครงการเฉพาะ ไม่เหมือนกับการกำหนดค่าก่อนหน้าการกำหนดค่าที่เก็บต้องทำจากภายในที่เก็บ การใช้ Git Bash, PowerShell ฯลฯ ไปยังที่เก็บของโครงการทดสอบ

git config --local user.author “smithy”

ได้รับสิ่งนี้ความคิดเห็นใหม่ในโครงการทดสอบจะใช้ชื่อผู้แต่งที่กำหนดไว้ในเครื่อง โครงการที่ใช้ Git อื่น ๆ จะยังคงใช้ชื่อผู้แต่งทั่วโลก

จากภายใน Eclipse

การกำหนดค่าการเปลี่ยนแปลงดังกล่าวยังสามารถตั้งค่าจากภายในคราสผ่านการตั้งค่า: ทีม→ Eclipse ต้องถูกเรียกใช้ในฐานะผู้ดูแลระบบเพื่อเปลี่ยนการกำหนดค่า Git ทั่วทั้งระบบ

ในผลรวม

แม้ว่าตัวอย่างนี้จะจัดการกับปัญหาที่พบบ่อยที่สุดโดยเฉพาะ แต่การเปลี่ยนแปลง${user}วิธีนี้สามารถนำมาใช้ได้มากกว่า อย่างไรก็ตามควรใช้ความระมัดระวังไม่ให้ใช้คีย์การกำหนดค่าที่กำหนดโดย Git ยกเว้นว่ามีวัตถุประสงค์เฉพาะ


นี่เป็นสิ่งที่ดี แต่ทำไมไม่ใช้เพียง${author:git_config(user.name)}เพราะมันเป็นมาตรฐานอยู่แล้ว?
RobertDeRose

@RobD - ตามที่กล่าวไว้ในโพสต์ (ย่อหน้าที่ 5 จากด้านบน) - เพื่อหลีกเลี่ยงความสับสน คุณมีอิสระที่จะใช้สิ่งที่คุณต้องการ แม้ว่าในสภาพแวดล้อมการผลิตจะเป็นการดีกว่าที่จะแยกรายการการกำหนดค่าโครงการออกจากรายการการกำหนดค่าระบบ
Frelling

16

แทนที่จะเปลี่ยนเป็น${user}eclipse แนะนำให้แนะนำ

-Duser.name=Whateverpleaseyou

ในeclipse.iniที่มีอยู่ในโฟลเดอร์คราสของคุณ


3
-1 ไม่ eclipse.ini ถูกบันทึกเป็น UTF-8 ไม่สามารถจัดการสำเนียงภาษาฝรั่งเศสได้อย่างถูกต้องเช่นàôéù ...
Aubin

26
จุดประสงค์ของการโพสต์คืออะไรในอีกสี่ปีต่อมาโซลูชันเดียวกันที่ได้รับการยอมรับ
PhiLho

2
@Aubin จริง ๆ แล้วตอนนี้ฉันกำลังใช้ eclipse ที่รองรับการเน้นเสียงเช่นáóë .. ฯลฯ โดยไม่มีปัญหา นี่คือคำตอบที่ถูกต้องและเป็นประโยชน์
ลูคัสกาเบรียลซานเชซ

1
@PhiLho คำตอบนี้กระชับและกระชับมีเพียง 3 ประโยคเท่านั้น นอกจากนี้ลิงก์ในคำตอบที่เลือกยังใช้งานไม่ได้
johnnieb

3

dovescrywolf ให้คำแนะนำเป็นความคิดเห็นในบทความที่เชื่อมโยงโดย Davide Inglima

มันมีประโยชน์มากสำหรับฉันใน MacOS

  • ปิด Eclipse หากเปิดไว้
  • เปิด Termnal (bash console) และทำสิ่งต่าง ๆ ด้านล่าง:

    $ pwd /Users/You/YourEclipseInstalationDirectory  
    $ cd Eclipse.app/Contents/MacOS/  
    $ echo "-Duser.name=Your Name" >> eclipse.ini  
    $ cat eclipse.ini
  • ปิด Terminal และเริ่ม / เปิด Eclipse อีกครั้ง


1

นี่คือไฟล์ที่เราทุกคนกำลังมองหา (ภายในพื้นที่ทำงาน Eclipse ของคุณ):

.plugins / org.eclipse.core.runtime / .settings / org.eclipse.jdt.ui.prefs

คุณจะพบแท็ก @author พร้อมชื่อที่คุณต้องการเปลี่ยน รีสตาร์ท Eclipse และจะใช้งานได้

สำหรับการเน้นคุณต้องใช้รูปแบบ Unicode (เช่น '\ u00E1' สำหรับá)

นอกจากนี้คุณยังสามารถแก้ไขไฟล์ 'ini' ตามคำแนะนำก่อนหน้านี้แนะนำหรือตั้งค่าชื่อผู้ใช้ var สำหรับโซลูชันระดับโลก หรือแทนที่แท็ก @author ในเมนูการตั้งค่าสำหรับโซลูชันท้องถิ่น สิ่งเหล่านี้เป็นวิธีแก้ไขปัญหาที่ถูกต้องสำหรับปัญหานี้

แต่ถ้าคุณกำลังมองหาชื่อผู้แต่ง 'นั้น' ที่รบกวนเราส่วนใหญ่อยู่ในไฟล์นั้น


ตัวเลือกนี้จริงแก้ไขการตั้งค่าที่แสดงในการกำหนดค่าตามความชอบ eclipse (ลบแท็ก {user}) ด้วยมือ
Alfabravo

ตำแหน่งไฟล์ล้าสมัยสำหรับ Eclipse Luna
Martin Carney

มันคือ$WORKSPACE/.metadata/.plugins/org.eclipse.core.runtime/.settings/... บนดาวอังคารและยังมี$WORKSPACE/$PROJECT/.settings/... สำหรับแต่ละโครงการ ดังที่กล่าวไว้เหล่านี้คือพื้นที่ทำงานหรือการตั้งค่าโครงการที่สามารถแก้ไขได้อย่างสะดวกสบายด้วยมือ (และยกเว้นโดย OP)
เดิร์ก

0

แก้ไขไฟล์/etc/eclipse.iniเพื่อให้มีรายการเป็น;

-Duser.name=myname

รีสตาร์ท "eclipse" และตอนนี้ในการสร้างไฟล์ใหม่ด้วยวิซาร์ด (c / c ++ / java) มันจะใช้ "myname" แทน $ {user}


-1

หน้าต่าง -> การตั้งค่า -> Java -> สไตล์ของโค้ด -> เทมเพลตของโค้ด -> ความคิดเห็น -> ประเภทเปลี่ยนค่าของ $ $ user เป็นชื่อของคุณ

ก่อน

/**
 * @author ${user}
 *
 * ${tags}
 */

หลังจาก

/**
 * @author Waqas Ahmed
 *
 * ${tags}
 */

ป้อนคำอธิบายรูปภาพที่นี่


-4

ตัวเลือกอื่น ๆ ไปที่การกำหนดค่าตามความชอบ >> JAVA >> ตัวแก้ไข >> เทมเพลตเลือก @ อนุญาตและเปลี่ยนตัวแปร $ {user}

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.