나는 다음과 같은 사용자 지정 어셈블리가 :사용자 정의 조립 기술자 명시하는 클래스 경로를 추가
<assembly>
<id>full</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>${project.build.outputDirectory}</directory>
<outputDirectory>/</outputDirectory>
</fileSet>
</fileSets>
</assembly>
그리고 다음과 같은 구성 섹션 :
<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>
받는다는 조립 플러그인에 대한 설명서에 따라,이 클래스 경로 항목을 매니페스트 파일에 추가해야하지만 작동하지 않습니다. 단일 대신에 사용되지 않는 어셈블리 목표를 사용하면 작동합니다.
어딘가에 누군가가 아카이브 섹션을 jar 형식으로 만 사용할 수 있다고 언급했는데 이것이 내가 사용하고있는 것입니다.
조립품 : 조립품을 사용하지 않는 경우 올바르게 조립하는 새로운 방법을 정의 했습니까? 나는 정말로 deprecated 기능을 사용하는 것을 좋아하지 않지만, 만약 그들이 일을하고 제대로 문서화하지 못한다면, 나는 이것을 피하는 법을 정말로 모른다.
누구나 올바르게 수행하는 방법에 대한 예가 있습니까?
나는 이후 jar 파일에서 종속성을 제거하고 jar 파일과 함께 lib 폴더에 넣었습니다. 그러나 문제는 여전히 남아 있습니다. 어셈블리 플러그인은 지정된대로 클래스 경로를 추가하지 않습니다. – davija
그럴 필요가 없습니다. 항아리 플러그인은 그 직업을 가지고 있습니다. – bmargulies
어셈블리 플러그인의 문서에 따르면 클래스 패스를 추가하라는 메시지가 표시되면 어셈블리 플러그인에 대한 설명이 표시됩니다. 현재는 더 이상 사용되지 않는 다른 목표에서 작동합니다. 문서 확인 – davija