คอมไพล์ไฟล์ JAR ที่มีการขึ้นต่อกันของ JAR ทั้งหมด

ฉันมีไฟล์ JAR ที่ดาวน์โหลดจาก ที่นี่ ปรากฎว่าการรัน JAR นี้ต้องใช้ไฟล์ JAR อื่นๆ หลายไฟล์ เช่น bson4jackson-2.7.0.jar jackson-annotations-2.9.0.jar

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


person Ihsan Haikal    schedule 06.07.2018    source แหล่งที่มา


คำตอบ (1)


คุณต้องใช้ปลั๊กอิน maven shade ซึ่งจะสร้างขวดไขมันที่นี่ เป็นตัวอย่าง

           <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.1.0</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <finalName>jar2</finalName>
                            <transformers>
                                <!-- add Main-Class to manifest file -->
                                <transformer
                                    implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>com.greg.App</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
person Essex Boy    schedule 06.07.2018
comment
ฉันมีเฉพาะไฟล์ JAR และการขึ้นต่อกันเหล่านั้น ในกรณีนี้ฉันควรทำโปรเจ็กต์ Maven ใหม่หรือไม่ - person Ihsan Haikal; 06.07.2018
comment
@IhsanHaikal ใช่ สร้างโปรเจ็กต์ Maven ใหม่ เพิ่ม jars เหล่านั้นทั้งหมดเป็นการพึ่งพา และ maven จะสร้าง jar ที่มีไขมัน เช่น jar ที่มีคลาสทั้งหมดระเบิดเพื่อให้ตัวโหลดคลาสสามารถค้นหาพวกมันได้ - person Essex Boy; 06.07.2018
comment
โอเค ฉันจะลองดู แต่แล้วแอตทริบิวต์ mainClass เช่นเดียวกับที่คุณเขียนในคำตอบล่ะ? แล้วฉันควรเขียนอะไรดีล่ะ? - person Ihsan Haikal; 06.07.2018
comment
คุณกำลังพยายามสร้าง jar ที่รันได้หรือไม่? - person Essex Boy; 06.07.2018
comment
ใช่ แต่ตอนนี้ฉันพบข้อผิดพลาด ดูการอัปเดตของฉันสำหรับ pom.xml และข้อผิดพลาด - person Ihsan Haikal; 06.07.2018