พวกเรามีสองสามของมรดกตกทอดของจาวางยิ่งสนง.โครงการ,ซึ่งเราถูกต้อง Maven โครงการของ/มอดูล ความเดิมตอนที่แล้วทั้งยิ่งสนง.โครงการเป็น NetBeans งยิ่งสนง.โครงการและไม่มีจริงของการขึ้นแก่กันการจัดการ เว็บเบราว์เซอร์ภายนอก dependencies มีอยู่ในบริษัทเครือข่ายขับรถและตรงรวมเป็นโหลอยู่ใน NetBeans งยิ่งสนง.โครงการของแต่ละโมดูล สำหรับคนภายใน dependencies,ง่ายอย่างโครงการจะอ้างอิงไปยังเป็นใช้ได้ มันเป็นความเจ็บปวดเพื่อสร้างทุกอย่างเพราะว่าโปรแกรมเมอร์ต้องสร้างทุกสิ่งทุกอย่างในตอคำสั่ง
ตอนนี้พวกเรากำลังอยู่ในตำแหน่งนั้นเราสามารถเปิดทั้งหมด Maven อดูลใน IntelliJ ความคิดและ NetBeans. อย่างไรก็ตามฉันมีปัญหาการแก้ปัญหาหนทางที่ดีที่สุดที่จะรวมแตกต่างมอดูลและเว็บเบราว์เซอร์ภายนอก dependencies อยู่เฉพาะทางซึ่ง conforms ต้องอยู่ในบ้านหลังส่วนเสริม-เหมือนโครงสร้างของ. โดยเฉพาะอย่างยิ่งกับ NetBeans(การพัฒนากับทั้งสอง IDEs ต้องเป็นไปได้).
นี่คือวิธีที่ git repositories/โครงการนี้โครงสร้างของเวลาอย่างน้อยดูเหมือนว่า. โครงสร้างของโฟลเดอร์ของมอดูลเป็นค่าปริยาย Maven โครงสร้างของสำหรับแต่ละโมดูล รายการวามสามารถของคุณสมบัติของเว็บไซต์นี้เป็นเหมือนกัซุ่มซ่ามดังนั้นฉันถูกรวมมันเป็นภาพหน้าจอที่จับได้...
เราต้องการภายใน maven สำหรับเก็บของที่แล้วตึกกับ maven เป็นต้น มันทำงานอยู่ สำหรับ Intellij ความคิดฉันสามารถวิ่งและการดีบั๊กที่สุดผลิตภัณฑ์สำหรับ customer1 ผ่านทางการกำหนดวิ่งการปรับแต่งซึ่งจำนวนสำเนาที่ต้องการแฟ้มที่ต้องการโครงสร้าง:
กับ IntelliJ ความคิดฉันสามารถการดีบั๊กโปรแกรมแต่ผมคิดว่าคนเข้าใกล้(กำหนดเอง IntelliJ วิ่ง config ฉันสร้างขึ้นมาจ่อกันต้องการขวดโหลกและแฟ้มโดยตรง)ค่อนข้างจะน่าเกลียดและสำหรับ NetBeans ฉันไม่สามารถค้นหาคล้ายกัน"วิ่งการปรับแต่ง"กลไกของมัน.
ดังนั้นฉันพยายามที่จะประสบความสำเร็จในส่วนนี้สร้างโดยโพรเซสกำลังสร้างใหม่"Customer1Runnable"Maven โครงการเป็นแบบสร้างรายละเอียด,ซึ่งคะแนนกันทั้งต้องการ Maven มอดูล จากนี้,ฉันเชื่อว่าฉันอาจจะประสบความสำเร็จในส่วและ automatism เพื่อสร้างที่ต้องการซอฟต์แวร์โครงสร้างของ. ดังนั้นมันจึงคัดลอกหมอดูลเข้าไปในโฟลเดอร์ส่วนเสริมและทั้งหมด dependencies ของมอดูลเข้า lib โฟลเดอร์ภายใน Customer1Runnable โครงการโดยใช้ maven-โรงเรี-ส่วนเสริม
อย่างแรกคือของฉันสมมติฐานที่ถูกต้องเพราะว่ามันเป็นเรื่องของที่เป็นไปได้ใช้คดีสำหรับ maven-โรงเรี-ส่วนเสริม?
หรับการออกแบบโครงการตัวมันเองยังไม่มีแหล่งแฟ้ม,มันเป็นเพียง pom.xml และ assembly-config.xml descriptor. ฉันติดที่โรงเรี-ส่วนเสริมไปที่กล่องนั้น ตอนที่กำลังคน mvn package
คำสั่งเกี่ยวข้องกันหมอดูลสร้างขึ้น,แต่สำหรับการประหารของโรงเรี-ส่วนเสริมฉันได้ตามผลลัพธ์ที่ได้:
สำหรับคนเพื่งเริ่มต้นนะฉันแค่พยายามจะรวมคนในศูนย์ควบคุม kde ในโมดูลที่โรงเรี descriptor. นี่คือ XML(opicom-assembly.xml)สำหรับมัน:
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 http://maven.apache.org/xsd/assembly-2.1.0.xsd">
<id>opicom-assembly</id>
<formats>
<format>dir</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<moduleSets>
<moduleSet>
<useAllReactorProjects>true</useAllReactorProjects>
<includes>
<include>my.company.reporting:module1</include>
</includes>
</moduleSet>
</moduleSets>
</assembly>
pom.xml ขอ Customer1Runnable โครงการ
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<version>1.6</version>
<groupId>my.company.customer1</groupId>
<artifactId>OpicomRunnable</artifactId>
<packaging>pom</packaging>
<name>OpicomRunnable</name>
<repositories>
<repository>
<id>Company-Maven-Repo</id>
<url>file:\\\\MyCompany\TFSDrop\MavenRepo</url>
</repository>
</repositories>
<modules>
<module>../my.company.customer1.module1</module>
<module>../my.company.customer1.module2</module>
.
.
.
<module>../../MyCompany_Common/Report/my.company.reporting.module1</module>
</modules>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<inherited>true</inherited>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<descriptors>
<descriptor>opicom-assembly.xml</descriptor>
</descriptors>
</configuration>
</plugin>
</plugins>
</build>
</project>
ที่ pom ของศูนย์ควบคุม kde ในโมดูลดูเหมือนนี้:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>my.company</groupId>
<artifactId>reporting</artifactId>
<version>1.3</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>module1</artifactId>
<version>1.3</version>
<packaging>jar</packaging>
<dependencies>
<!-- external dependencies -->
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>21.1.0.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<finalName>my-company-${project.artifactId}</finalName>
<appendAssemblyId>false</appendAssemblyId>
<outputDirectory>../build</outputDirectory>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
</project>
ขอบคุณสำหรับอะไรนำเข้าข้อมูลในสิ่งที่ฉันกำลังทำผิดอยู่ที่นี่/ยังไงเพื่อจะประสบความสำเร็จในส่วนนี้กับ Maven.
แก้ไข: ที่ร้องขอ,ที่นี่เป็นตัวอย่างโครงการที่ ZIP-แฟ้ม https://drive.google.com/drive/folders/1ilJeTrOPgYgUTdOP0J4BQcBnPT5fls0k?usp=sharing พ่อแม่ไดเรกทอรี ModuleGroupCustomer และ ModuleGroupCommon ทำอย่างเป็นตัวแทนของ git repositories ในที่แท้จริงพวกเขายัง..... ที่มพันธ์กันกับศูนย์ควบคุม kde ในโมดูลเส้นทางเป็นสาเหตุเพราะที่ maven โครงการซึ่งควรจะเป็นของฉัน"หนี config"คะแนนต้อง maven งยิ่งสนง.โครงการทั้งสอง repositories.
บางทีฉันอาจเป็นเรื่องเข้าใจผิด Maven ในอนายพล? ฉันคิดว่าของมันในแง่ของใช้คดีสำหรับการขึ้นแก่กันการจัดการที่คล้ายกันเน็ nuget พัสดุแต่ก็ยังเป็น"โครงการการปรับแต่ง"เหมือนคนธรรมดา NetBeans/Intellij งยิ่งสนง.โครงการ.
มันจะดีกว่าง่ายๆทำตามที่มีอยู่ NetBeans งยิ่งสนง.โครงการสำหรับวันไปวันพัฒนาการ?