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

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

5
Git ละเว้นและเป้าหมาย Maven
ใคร ๆ ก็รู้ว่าเป็นไปได้หรือไม่ที่จะเพิกเฉยต่ออินสแตนซ์ทั้งหมดของไดเร็กทอรีเฉพาะในโครงสร้างไฟล์ที่จัดการโดย git ฉันต้องการยกเว้นโฟลเดอร์ 'เป้าหมาย' ทั้งหมดในโครงการ maven ที่มีโมดูลย่อยจำนวนหนึ่ง ฉันรู้ว่าฉันสามารถแยกแต่ละรายการในระดับบนสุด. gitignore ได้อย่างชัดเจน แต่ฉันอยากจะระบุรูปแบบเช่น ** / target / * ที่นั่นเพื่อให้มันละเว้นอินสแตนซ์ในไดเรกทอรีย่อยโดยอัตโนมัติหรือไม่ เป็นไปได้หรือไม่

5
Maven: วิธีลบล้างการอ้างอิงที่เพิ่มโดยไลบรารี
นี่คือปัญหาทั่วไปของฉัน: โครงการ P ของฉันขึ้นอยู่กับ A ซึ่งขึ้นอยู่กับ B ซึ่งขึ้นอยู่กับ C ซึ่งขึ้นอยู่กับเวอร์ชัน 1.0.1 ของ D มีปัญหากับเวอร์ชัน 1.0.1 ของ D และฉันต้องการบังคับให้ใช้โมดูลอื่น ฉันไม่รู้ว่าจะประกาศสิ่งนี้อย่างไรใน POM ของโปรเจ็กต์ของฉันเนื่องจากฉันไม่ได้เพิ่มการพึ่งพา D โดยตรง เป็น C ซึ่งประกาศการพึ่งพา D. สำคัญ: ในกรณีนี้ไม่เพียง แต่เปลี่ยนเวอร์ชันเท่านั้น แต่ยังรวมถึงกลุ่มและสิ่งประดิษฐ์ด้วย ดังนั้นจึงไม่ใช่แค่เรื่องของการลบล้างเวอร์ชันของการอ้างอิง แต่เป็นการยกเว้นโมดูลและรวมโมดูลอื่นด้วย ในกรณีคอนกรีต D คือ StAX ซึ่งมีข้อบกพร่อง 1.0.1ข้อผิดพลาดตามบันทึกในบั๊ก "ปัญหาได้รับการแก้ไขโดยการแทนที่ stax-api-1.0.1 (maven GroupId = stax) โดย stax-api-1.0-2 (maven GroupId = …

2
ติดตั้ง POM หลักโดยไม่ต้องสร้างโมดูลลูก
ฉันมี POM หลักในโครงการ Maven ด้วยโครงสร้างนี้: parent | --------------- | | child1 child2 ฉันต้องการติดตั้ง POM ของ"พาเรนต์"ใน REPO ในพื้นที่เพื่อให้child1ทำการเปลี่ยนแปลงบางอย่างที่ฉันทำในการจัดการการพึ่งพา แต่ฉันไม่สามารถทำการ "ติดตั้งใหม่ทั้งหมด" แบบปกติได้เนื่องจาก"child2"เสียและจะไม่สร้าง ซึ่งเป็นวิธีที่เหมาะสมในการทำสิ่งนี้กับ maven (นอกเหนือจากไปที่ parent pom และแสดงความคิดเห็นโมดูล"child2" )
115 java  maven  maven-2  pom.xml 

2
การอ้างอิงที่แตกต่างกันสำหรับโปรไฟล์การสร้างที่แตกต่างกัน
เป็นไปได้ไหมที่จะมีชุดการอ้างอิงที่แตกต่างกันในไฟล์ maven pom.xml สำหรับโปรไฟล์ที่แตกต่างกัน? เช่น mvn -P debug mvn -P release ฉันต้องการรับไฟล์ jar การพึ่งพาอื่นในโปรไฟล์เดียวที่มีชื่อคลาสเดียวกันและการใช้งานอินเทอร์เฟซเดียวกันที่แตกต่างกัน

8
การพึ่งพา maven ใดที่จะรวมไว้สำหรับ spring 3.0
ฉันกำลังพยายามทำโครงการแรกด้วย Spring 3.0 (และ maven) ฉันใช้ Spring 2.5 (และเวอร์ชันไพรเมอร์) ในบางโครงการ อย่างไรก็ตามฉันค่อนข้างสับสนฉันต้องกำหนดโมดูลใดให้เป็นการอ้างอิงใน pom.xml ของฉัน ฉันแค่ต้องการใช้ฟังก์ชันคอนเทนเนอร์หลัก (ถั่ว, แกน, บริบท, เอล) ฉันเคยทำสิ่งนี้: <dependency> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> <version>2.5.6</version> </dependency> แต่ตอนนี้ฉันสับสนพอสมควรเนื่องจากไม่มีโมดูลสปริงแบบเต็มสำหรับเวอร์ชัน 3.0 อีกต่อไป ฉันลองทำตามขั้นตอนต่อไปนี้ แต่ไม่ได้ผล (บางคลาสหายไป) <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>3.0.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>3.0.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>3.0.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>3.0.0.RELEASE</version> </dependency> …

6
จะเก็บโปรไฟล์ Maven ที่ activeByDefault ไว้ได้อย่างไรแม้ว่าโปรไฟล์อื่นจะเปิดใช้งานอยู่ก็ตาม
ฉันมีโปรไฟล์ใน pom.xml ซึ่งควรใช้งานได้ตลอดเวลาเว้นแต่จะปิดใช้งานอย่างชัดเจน (-P! firstProfile) ฉันแก้ไขสิ่งนี้โดยใช้แฟล็ก activeByDefault: <profiles> <profile> <id>firstProfile</id> <activation> <activeByDefault>true</activeByDefault> </activation> ... </profile> </profiles> ตอนนี้ใน pom.xml เดียวกันฉันมีโปรไฟล์ที่สองที่กำหนดสิ่งนี้ควรใช้งานได้ก็ต่อเมื่อเปิดใช้งานโปรไฟล์จริงๆ (-P secondProfile) ดังนั้นลักษณะการทำงานเริ่มต้นคือ: firstProfile active, secondProfile inactive ในบางจุดฉันต้องการเปิดใช้งานโปรไฟล์ที่สองนอกเหนือจากโปรไฟล์แรก ตอนนี้ปัญหาคือว่าถ้าฉันทำด้วย "-P secondProfile" firstProfile จะถูกปิดการใช้งาน เอกสาร Maven ระบุสิ่งนี้: ... โปรไฟล์นี้จะเปิดใช้งานโดยอัตโนมัติสำหรับทุกงานสร้างเว้นแต่จะเปิดใช้งานโปรไฟล์อื่นใน POM เดียวกันโดยใช้วิธีการใดวิธีหนึ่งที่อธิบายไว้ก่อนหน้านี้ โปรไฟล์ทั้งหมดที่แอ็คทีฟโดยค่าเริ่มต้นจะถูกปิดใช้งานโดยอัตโนมัติเมื่อโปรไฟล์ใน POM ถูกเปิดใช้งานบนบรรทัดคำสั่งหรือผ่านการกำหนดค่าการเปิดใช้งาน ... มีความเป็นไปได้หรือไม่ที่จะทำให้ firstProfile ใช้งานได้ตลอดเวลา (โดยไม่ต้องประกาศใน settings.xml)
113 maven-2  maven  maven-3 

2
วิธีการระบุการกระจายองค์กรการจัดการของ maven กว้าง?
ฉันกำลังพยายามหาวิธีจัดระเบียบโครงการ maven2 จำนวนมาก (ประมาณ 50+) เพื่อให้สามารถปรับใช้ในพื้นที่เก็บข้อมูลส่วนกลาง เมื่อใช้mvn deployเป้าหมายเราจำเป็นต้องระบุเป้าหมายในแท็ก distributionManagement ดังนี้: <distributionManagement> <repository> <id>nexus-site</id> <url>http://central_nexus/server</url> </repository> </distributionManagement> ตอนนี้ฉันไม่ต้องการให้ทุก ๆ pom.xml (ของ 50+) มีบล็อกนี้ซ้ำแล้วซ้ำเล่า แม้ว่าสิ่งแรกของฉันจะเป็นsettings.xmlไฟล์ แต่ดูเหมือนว่าจะไม่สามารถกำหนดได้ (โดยการออกแบบ) คำถามแรกคือทำไมถึงเป็นเช่นนั้น? ถ้าเป็นไปได้ฉันสามารถระบุได้ใน settings.xml ในการแจกจ่าย maven2 ซึ่งสามารถแจกจ่ายให้กับนักพัฒนาทุกคนได้ ทางออกเดียวที่เป็นไปได้ที่ฉันพบคือการสร้างโปรเจ็กต์ master-pom สำหรับทั้งองค์กรที่มีการตั้งค่าเหล่านี้และทำให้ pom.xml อื่น ๆ ทั้งหมดขึ้นอยู่กับ master-pom นี้ผ่าน<parent>แท็ก แต่สิ่งนี้ดูแปลก ๆ ในการสร้างหลายโมดูล: - master configuration POM (pm) - Project …

3
เป็นไปได้หรือไม่ที่จะลบล้างการกำหนดค่าของปลั๊กอินที่กำหนดไว้แล้วสำหรับโปรไฟล์ใน POM หลัก
ในไฟล์พาเรนต์ POM ของโปรเจ็กต์ของฉันฉันมีโปรไฟล์ที่กำหนดคอนฟิกูเรชันบางอย่างที่เป็นประโยชน์สำหรับโปรเจ็กต์นี้ (ดังนั้นฉันจึงไม่สามารถกำจัด POM พาเรนต์นี้ได้): <profile> <id>wls7</id> ... <build> <plugins> <!-- use java 1.4 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <fork>true</fork> <source>1.4</source> <target>1.4</target> <meminitial>128m</meminitial> <maxmem>1024m</maxmem> <executable>%${jdk14.executable}</executable> </configuration> </plugin> </plugins> </build> ... </profile> แต่ในโครงการของฉันฉันแค่อยากจะแทนที่การกำหนดค่าของ maven-compiler-plugin เพื่อใช้ jdk5 แทน jdk4 สำหรับการรวบรวมคลาสทดสอบ นั่นเป็นเหตุผลที่ฉันทำส่วนนี้ใน POM ของโครงการของฉัน: <profiles> <profile> <id>wls7</id> <activation> <property> <name>jdk</name> <value>4</value> </property> …

30
ไม่มีการอ้างอิง Maven ในโปรเจ็กต์ Eclipse
เรามีโครงการที่จัดตั้งขึ้นด้วย maven สำหรับการแก้ไขการพึ่งพา มันมักจะใช้งานได้ดี แต่ตอนนี้ฉันพยายามรวบรวมและเรียกใช้บนพีซีเครื่องใหม่และฉันมีปัญหากับการอ้างอิงที่ขาดหายไปใน Eclipse สิ่งที่น่าตลกคือถ้าฉันเรียกใช้ "แพ็คเกจ mvn" ในคอนโซลหรือในคราสมันจะทำงานได้ดีและยังสร้างสงครามที่มีขวดโหลที่จำเป็นทั้งหมด เฉพาะ Eclipse เท่านั้นที่บ่นว่า "โครงการไม่ได้ถูกสร้างขึ้นเนื่องจากพา ธ การสร้างไม่สมบูรณ์ไม่พบไฟล์คลาสสำหรับ org.slf4j.Logger ... " ถ้าฉันเปรียบเทียบโปรเจ็กต์กับคอมพิวเตอร์เครื่องอื่น ๆ (โดยที่โปรเจ็กต์ทำงานได้ดี) ฉันสังเกตเห็นว่ามีไลบรารีไม่กี่ไลบรารีที่ขาดหายไปภายใต้รายการ "การอ้างอิง Maven" ใน Eclipse แม้ว่าพวกเขาจะอยู่ในสงครามแพ็กเกจและสามารถพบได้ในโฟลเดอร์ที่เก็บข้อมูล ดังนั้น jar-s มีเพียง Eclipse จะไม่แสดงรายการทั้งหมดภายใต้ "การพึ่งพา Maven" ฉันจะทำอะไรได้บ้าง? คอมพิวเตอร์กำลังทำงานบน Windows 7 ด้วย 64 บิต java & eclipse


18
คุณสมบัติ Maven2 ที่ระบุไดเร็กทอรีหลัก
ฉันมีโครงการหลายโมดูลเช่นนี้: main-project/ module1/ module2/ sub-module1/ sub-module2/ sub-module3/ ... module3/ module4/ ... ฉันต้องการกำหนดชุดของคุณสมบัติ (ซึ่งขึ้นอยู่กับสภาพแวดล้อมที่ฉันต้องการปล่อยโปรเจ็กต์ของฉัน) ใน Maven2 ฉันจะไม่ใช้<properties>ที่มีจำนวนมากของคุณสมบัติ ... ดังนั้นผมใช้ปลั๊กอินคุณสมบัติ Maven2 ไฟล์คุณสมบัติอยู่ในmain-project/ไดเร็กทอรี ฉันจะตั้งค่าไดเร็กทอรีที่ถูกต้องใน pom.xml หลักได้อย่างไรเพื่อระบุให้กับชายน์ที่จะค้นหาไฟล์คุณสมบัติ <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>properties-maven-plugin</artifactId> <version>1.0-alpha-1</version> <executions> <execution> <phase>initialize</phase> <goals> <goal>read-project-properties</goal> </goals> <configuration> <files> <file>???/env_${env}.properties</file> </files> </configuration> </execution> </executions> </plugin> ถ้าฉันตั้งค่าอย่างเดียว<file>env_${env}.properties</file>เมื่อ Maven2 รวบรวมโมดูลแรกจะไม่พบmain-project/env_dev.propertiesไฟล์ ถ้าฉันตั้งค่า<file>../env_${env}.properties</file>ข้อผิดพลาดจะเพิ่มขึ้นที่ระดับแม่หรือที่ระดับโมดูลย่อยใด ๆ ...

2
"เครื่องปฏิกรณ์" ใน Maven คืออะไร?
ฉันอ่านเกี่ยวกับเครื่องปฏิกรณ์ Maven และรู้สึกสับสนกับการใช้คำศัพท์ ฉันเคยอ่านมาว่าโมดูลหลายตัวเป็นเครื่องปฏิกรณ์ซึ่งคุณสามารถจัดการกับเครื่องปฏิกรณ์ maven และเครื่องปฏิกรณ์เป็นปลั๊กอิน เครื่องปฏิกรณ์คืออะไร?

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

5
รายชื่อเป้าหมายที่เป็นไปได้ทั้งหมดใน Maven 2?
ฉันเพิ่งรู้จัก Maven มาจากโลก Ant เป็นไปได้ไหมที่จะแสดงรายการเป้าหมายที่เป็นไปได้ทั้งหมด (รวมถึงปลั๊กอินทั้งหมด) ที่คุณสามารถเรียกใช้ได้ ฉันเห็นว่าเคยมี-gแฟล็กใน Maven 1 แต่ไม่มีในเวอร์ชัน 2
105 java  maven-2 

5
ฉันต้องการรันคำสั่งเชลล์จาก pom.xml ของ Maven
ฉันต้องการรันคำสั่งเชลล์ลินุกซ์ด้วย Maven นี่คือสิ่งที่ฉันลอง: <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.1.1</version> <executions> <execution> <goals> <goal>exec</goal> </goals> </execution> </executions> <configuration> <executable>hostname</executable> </configuration> </plugin>
105 maven-2 

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