คำถามติดแท็ก maven-2

Apache Maven เป็นเครื่องมือการจัดการโครงการและเครื่องมือความเข้าใจ นี่คือแท็กสำหรับคำถามที่เกี่ยวข้องกับ Maven ที่เฉพาะเจาะจงสำหรับ Maven รุ่น 2.x

30
ฉันจะสร้าง JAR แบบปฏิบัติการได้ด้วยการพึ่งพาโดยใช้ Maven ได้อย่างไร
ฉันต้องการจัดทำโปรเจคของฉันใน JAR ที่ปฏิบัติการได้ครั้งเดียวเพื่อแจกจ่าย ฉันจะสร้างแพ็กเกจโปรเจ็กต์ Maven ทั้งหมดให้พึ่งพา JAR ในเอาต์พุต JAR ของฉันได้อย่างไร?

12
ฉันจะบอกให้ Maven ใช้การอ้างอิงรุ่นล่าสุดได้อย่างไร
ใน Maven มักจะมีการตั้งค่าการพึ่งพาเช่นนี้: <dependency> <groupId>wonderful-inc</groupId> <artifactId>dream-library</artifactId> <version>1.2.3</version> </dependency> ตอนนี้ถ้าคุณกำลังทำงานกับไลบรารีที่มีการเผยแพร่บ่อยครั้งการอัปเดตแท็ก <version> อย่างต่อเนื่องอาจทำให้รำคาญ มีวิธีใดที่จะบอกให้ Maven ใช้เวอร์ชันล่าสุดที่มีอยู่เสมอ (จากที่เก็บ)?

24
ฉันสามารถเพิ่มไหใน maven 2 build classpath โดยไม่ต้องติดตั้งได้ไหม
Maven2 กำลังขับรถฉันบ้าในระหว่างการทดลอง / ขั้นตอนการพัฒนาจำลองที่รวดเร็วและสกปรก ฉันมีpom.xmlไฟล์ที่กำหนดการอ้างอิงสำหรับเฟรมเวิร์กของแอปที่ฉันต้องการใช้และฉันสามารถสร้างโครงการเริ่มต้นได้อย่างรวดเร็วจากไฟล์นั้น อย่างไรก็ตามบางครั้งฉันต้องการเชื่อมโยงไปยังห้องสมุดของบุคคลที่สามที่ไม่มีpom.xmlไฟล์ที่กำหนดไว้ดังนั้นแทนที่จะสร้างpom.xmlไฟล์สำหรับบุคคลที่สาม lib ด้วยมือและติดตั้งและเพิ่มการพึ่งพาของpom.xmlฉันฉันต้องการ เพื่อบอก Maven: "นอกจากการอ้างอิงที่ฉันกำหนดไว้ให้ใส่ขวดที่อยู่ใน/libนั้นด้วย" ดูเหมือนว่ามันควรจะง่าย แต่ถ้าเป็นเช่นนั้นฉันก็ขาดอะไรไป คำแนะนำใด ๆ เกี่ยวกับวิธีการทำเช่นนี้จะได้รับการชื่นชมอย่างมาก สั้น ๆ ถ้ามีวิธีง่าย ๆ ในการชี้ maven ไปยัง/libไดเรกทอรีและสร้างpom.xmljars ที่ล้อมรอบทั้งหมดที่แมปไปยังการพึ่งพาเดี่ยวซึ่งฉันสามารถตั้งชื่อ / ติดตั้งและเชื่อมโยงไปยังที่อยู่ในบัดดลได้
700 java  maven-2 

11
เรียกใช้วิธีการทดสอบเดียวด้วย maven
ฉันรู้ว่าคุณสามารถทำการทดสอบทั้งหมดในระดับหนึ่งโดยใช้: mvn test -Dtest=classname แต่ฉันต้องการเรียกใช้แต่ละวิธีและ -Dtest = classname.methodname ดูเหมือนจะไม่ทำงาน

6
โมดูล Maven + การสร้างโมดูลเฉพาะ
ฉันมีหลายโมดูลโครงการ Maven กับโครงการผู้ปกครองPและสามโมดูลย่อยA, และB Cทั้งสองBและเป็นโครงการสงครามและทั้งสองจะขึ้นอยู่กับ CA ฉันสามารถพิมพ์mvn compileในPและมีทั้งหมดของโมดูลย่อยรวบรวมอย่างถูกต้อง ปัญหามาเมื่อฉันต้องการดำเนินการสำหรับโมดูลเฉพาะ ฉันต้องการที่จะสามารถจัดแพคเกจสงครามสำหรับโครงการBแต่เมื่อฉันเรียกใช้คำสั่งแพคเกจจากBไดเรกทอรี 's Aก็บ่นว่าไม่สามารถหาอ้างอิงสำหรับ ฉันเข้าใจจากคำถามนี้: Maven และโมดูลที่ขึ้นต่อกันซึ่งบางที Maven ไม่ได้ออกแบบมาสำหรับการแก้ปัญหาการพึ่งพาประเภทนี้ แต่ที่ถามว่าฉันจะจัดแพคเกจได้Bอย่างไร ฉันต้องเรียกใช้mvn packageลำดับชั้นโครงการทั้งหมดเมื่อฉันต้องการจริงๆBหรือไม่? ฉันต้องติดตั้งสแนปชอตของ A ลงในที่เก็บข้อมูลโลคัลของฉันทุกครั้งที่ต้องการแพ็กเกจBหรือไม่ สถานการณ์ที่สองนี้ไม่สนุกมากเมื่อAยังอยู่ในระหว่างการพัฒนา แนวทางปฏิบัติที่ดีที่สุดที่นี่?

6
จะกำหนดค่าการเข้ารหัสใน Maven ได้อย่างไร
เมื่อฉันทำงานmaven installในโครงการ maven โมดูลของฉันฉันมักจะได้รับผลลัพธ์ต่อไปนี้: [WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent! ดังนั้นฉัน googled รอบเล็กน้อย แต่สิ่งที่ฉันสามารถหาได้คือฉันต้องเพิ่ม: <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> ... ถึง pom.xml ของฉัน แต่มันมีอยู่แล้ว (ในแม่pom.xml) การกำหนดค่า<encoding>สำหรับ maven-resources-plugin หรือ maven-compiler-plugin ยังไม่สามารถแก้ไขได้ แล้วปัญหาคืออะไร

13
รวมถึงการพึ่งพาในขวดที่มี Maven
มีวิธีบังคับ maven (2.0.9) เพื่อรวมการขึ้นต่อกันทั้งหมดในไฟล์ jar เดียวหรือไม่? ฉันมีโครงการที่สร้างเป็นไฟล์ jar เดียว ฉันต้องการให้คลาสจากการอ้างอิงถูกคัดลอกลงใน jar เช่นกัน อัปเดต:ฉันรู้ว่าฉันไม่สามารถรวมไฟล์ jar ในไฟล์ jar ได้ ฉันกำลังค้นหาวิธีที่จะแกะขวดที่ระบุเป็นการอ้างอิงและจัดเก็บไฟล์คลาสไว้ในขวดของฉัน
353 java  maven-2  jar  packaging 

22
ค้นหาไดรเวอร์ Oracle JDBC ในที่เก็บ Maven
ฉันต้องการเพิ่มไดร์เวอร์ oracle jdbc ให้กับโปรเจคของฉันเป็นการพึ่งพา (ขอบเขตรันไทม์) - ojdbc14 ในเว็บไซต์ MVNrepository การพึ่งพาที่จะใส่ใน POM คือ: <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc14</artifactId> <version>10.2.0.3.0</version> </dependency> แน่นอนว่ามันใช้งานไม่ได้เพราะมันไม่ได้อยู่ในพื้นที่เก็บข้อมูลส่วนกลางที่ maven ใช้ 2 คำถาม: ฉันจะค้นหาที่เก็บ (ถ้ามี) ที่มีส่วนนี้ได้อย่างไร? ฉันจะเพิ่มมันเพื่อที่ Maven จะใช้มันได้อย่างไร
292 java  maven  jdbc  maven-2  mvn-repo 

5
สิ่งประดิษฐ์ Maven และการตั้งชื่อกลุ่ม
ขณะนี้ฉันกำลังอยู่ระหว่างการย้ายโครงการจาก Ant ไปยัง Maven Conformist อย่างที่ฉันเป็นฉันต้องการใช้ข้อตกลงที่ได้รับการยอมรับอย่างดีในการค้นหาgroupIdและartifactIdแต่ฉันไม่สามารถหาข้อตกลงที่มีรายละเอียด (มีบ้าง แต่พวกเขาไม่ครอบคลุมประเด็นที่ฉันสงสัย) ทำโปรเจ็กต์นี้เป็นตัวอย่างแรกแพ็คเกจ Java: com.mycompany.teatimer ที่จริงแล้วTea Timerเป็นสองคำ แต่จาวาแพคเกจการตั้งชื่อการประชุมห้ามการแทรกขีดล่างหรือเครื่องหมายขีดคั่นดังนั้นฉันจึงเขียนมันทั้งหมดเข้าด้วยกัน ฉันเลือกgroupIdรหัสแพคเกจที่เหมือนกันเพราะฉันคิดว่าเป็นความคิดที่ดี ใช่ไหม? สุดท้ายผมต้องเลือกผมในขณะนี้ไปartifactId teatimerแต่เมื่อฉันมองไปที่โครงการ Maven อื่น ๆ ที่พวกเขาใช้ยัติภังค์คำแยกในartifactIds tea-timerเช่นนี้ แต่มันจะดูแปลกเมื่อตัดแบ่งไปที่:groupIdcom.mycompany.teatimer.tea-timer คุณจะทำอย่างไร ตัวอย่างอื่น: ชื่อแพ็คเกจ: com.mycompany.awesomeinhouseframework groupId: com.mycompany.awesomeinhouseframework(?) artifactId: awesome-inhouse-framework(?)

4
Maven parent pom เทียบกับโมดูล pom
ดูเหมือนจะมีหลายวิธีในการจัดโครงสร้างปอมปอมในโครงสร้างแบบมัลติโปรเจ็กต์และฉันสงสัยว่าถ้าใครมีความคิดเกี่ยวกับข้อดี / ข้อเสียของแต่ละวิธี วิธีที่ง่ายที่สุดในการมี parent pom ก็คือการใส่ไว้ในรูทของโปรเจคเช่น myproject/ myproject-core/ myproject-api/ myproject-app/ pom.xml โดยที่ pom.xml เป็นทั้งโปรเจ็กต์หลักรวมถึงอธิบายโมดูล -core -api และ -app วิธีถัดไปคือการแยกพาเรนต์ออกเป็นไดเรกทอรีย่อยของตนเองเช่นเดียวกับใน myproject/ mypoject-parent/ pom.xml myproject-core/ myproject-api/ myproject-app/ ที่ซึ่งพาเรนต์ pom ยังคงมีโมดูล แต่มันสัมพันธ์กันเช่น ../myproject-core ในที่สุดก็มีตัวเลือกที่คำนิยามโมดูลและผู้ปกครองจะถูกแยกออกเป็น myproject/ mypoject-parent/ pom.xml myproject-core/ myproject-api/ myproject-app/ pom.xml โดยที่ parent pom มีการกำหนดค่า "shared" ใด ๆ (dependencyManagement คุณสมบัติ ฯลฯ ) …


5
มีวิธีง่ายๆในการลบการอ้างอิงที่ไม่ได้ใช้จาก maven pom.xml หรือไม่?
ฉันมีโครงการ Maven ขนาดใหญ่ที่มีโมดูลมากมายและอีกมากมาย pom.xmlไฟล์โครงการมีการเปลี่ยนแปลงและฉันสงสัยว่าปอมมีการขึ้นต่อกันที่ไม่จำเป็นบางอย่าง มีคำสั่งที่ลบการอ้างอิงที่ไม่ได้ใช้ออกจาก pom หรือไม่?
277 maven  maven-2 


5
Maven: คำสั่งเพื่ออัพเดตที่เก็บหลังจากเพิ่มการพึ่งพา POM
ฉันได้เพิ่มการอ้างอิงใหม่ให้กับ POM ของฉัน มีคำสั่งง่ายๆที่ฉันสามารถรันเพื่อดาวน์โหลดการอ้างอิงนี้ไปยังที่เก็บของฉันได้หรือไม่?

15
บังคับให้ Maven คัดลอกการอ้างอิงไปยังเป้าหมาย / lib
ฉันจะคัดลอกการอ้างอิงแบบรันไทม์ของโครงการไปยังtarget/libโฟลเดอร์ได้อย่างไร มันเป็นอยู่ในขณะนี้หลังจากโฟลเดอร์มีเพียงขวดโครงการของฉัน แต่ไม่มีการอ้างอิงรันไทม์mvn clean installtarget

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