Kompilasi file JAR dengan semua dependensi JAR-nya

Saya memiliki file JAR yang saya unduh dari di sini. Ternyata untuk menjalankan JAR ini memerlukan beberapa file JAR lainnya, seperti bson4jackson-2.7.0.jar jackson-annotations-2.9.0.jar.

Apakah mungkin untuk mengkompilasi JAR yang saya unduh dengan file JAR lain menjadi satu JAR atau JAR yang gemuk dengan dependensi? Apakah ada perintah Maven untuk melakukan itu?


person Ihsan Haikal    schedule 06.07.2018    source sumber


Jawaban (1)


Anda perlu menggunakan plugin maven shade karena ini akan membuat toples lemak di sini adalah sebuah contoh

           <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
Saya hanya memiliki file JAR dan dependensinya. Dalam hal ini saya harus membuat proyek Maven baru? - person Ihsan Haikal; 06.07.2018
comment
@IhsanHaikal ya, buat proyek pakar baru, tambahkan semua toples tersebut sebagai dependensi dan pakar akan membuat toples gemuk, yaitu toples dengan semua kelas diledakkan sehingga pemuat kelas dapat menemukannya. - person Essex Boy; 06.07.2018
comment
Oke, saya akan mencobanya. Tapi bagaimana dengan atribut mainClass seperti yang Anda tulis di jawaban? Lalu apa yang harus saya tulis? - person Ihsan Haikal; 06.07.2018
comment
Apakah Anda mencoba membuat toples yang bisa dijalankan? - person Essex Boy; 06.07.2018
comment
Ya, tetapi saya mengalami kesalahan sekarang. Lihat pembaruan saya untuk pom.xml dan kesalahan - person Ihsan Haikal; 06.07.2018