Tôi có lắp ráp tùy chỉnh sau:Thêm classpath để bày tỏ với một mô tả lắp ráp tùy chỉnh
<assembly>
<id>full</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>${project.build.outputDirectory}</directory>
<outputDirectory>/</outputDirectory>
</fileSet>
</fileSets>
</assembly>
Và phần cấu hình sau:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>src/main/assembly/assembly.xml</descriptor>
</descriptors>
<archive>
<manifest>
<mainClass>com.example.MyExample</mainClass>
<addClasspath>true</addClasspath>
<classpathPrefix>./lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
Theo tài liệu trên lắp ráp Plugin maven, đây nên thêm một mục classpath vào tệp kê khai, tuy nhiên nó không hoạt động. Nếu tôi sử dụng mục tiêu lắp ráp không được chấp nhận thay vì duy nhất, nó hoạt động.
Tôi nhận thấy một nơi nào đó có người đề cập rằng phần lưu trữ chỉ có sẵn với định dạng jar, nhưng đó là những gì tôi đang sử dụng.
Khi chúng không được lắp ráp: lắp ráp, chúng có định nghĩa một cách mới để thực hiện điều này một cách chính xác không? Tôi thực sự không thích sử dụng chức năng không được chấp nhận, nhưng nếu họ phá vỡ cách mọi thứ hoạt động và không đúng cách ghi lại nó, tôi thực sự không biết làm thế nào để tránh điều này.
Có ai có bất kỳ ví dụ nào về cách thực hiện việc này đúng cách không?
Tôi đã xóa các phụ thuộc khỏi bình và đặt chúng trong thư mục lib cùng với bình. Tuy nhiên, vấn đề vẫn còn. Plugin lắp ráp không thêm đường dẫn lớp như được chỉ định. – davija
Nó không phải. Plugin jar có công việc đó. – bmargulies
Theo tài liệu hướng dẫn trên plugin lắp ráp, nếu bạn yêu cầu nó thêm classpath vào nó. Nó hoạt động trong các mục tiêu khác hiện không được chấp nhận. Kiểm tra tài liệu – davija