여기에 무지하게 들러 유감이지만 저는 Maven을 처음 접했고 정말 간단하다고 생각하는 것에 맞서 머리를 숙였습니다.Maven 어셈블리 플러그인을 시작하는 데 문제가 발생했습니다.
docs 말 :
[...] 루트 디렉토리, lib 디렉토리/디렉토리에 런타임 종속성에서 프로젝트의 JAR 이슈를 포함하는 ZIP 어셈블리를 생성 할 수있는 프로젝트 및 쉘 스크립트 독립 실행 형 응용 프로그램을 시작합니다.
정확히 내가하고 싶은 것을! 그러나 나는 그렇게 할 수 없습니다.
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.anearalone</groupId>
<artifactId>myapp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
[...]
<build>
<finalName>myapp</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/main/assemble/dist.xml</descriptor>
</descriptors>
<archive>
<manifest>
<mainClass>com.anearalone.myapp.CLI</mainClass>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
</archive>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
[...]
</project>
및 참조 dist.xml는 다음과 같습니다 : 다음과 같이
내 POM은
<assembly>
<id>dist</id>
<formats>
<format>zip</format>
</formats>
<files>
<file>
<outputDirectory>/</outputDirectory>
<source>src/main/bin/arkify.sh</source>
<fileMode>755</fileMode>
</file>
</files>
<dependencySets>
<dependencySet>
<useProjectArtifact>false</useProjectArtifact>
<includes>
<include>*:jar</include>
</includes>
<outputDirectory>/lib</outputDirectory>
</dependencySet>
<dependencySet>
<useProjectArtifact>true</useProjectArtifact>
<includes>
<include>com.anearalone:myapp:jar:0.0.1-SNAPSHOT</include>
</includes>
<outputDirectory>/</outputDirectory>
</dependencySet>
</dependencySets>
</assembly>
내가 꽤 있어요하지만 이것은 (I zip 파일에서 원하는 레이아웃을 달성 내가 올바른 방법으로 거기에 도착하지 않을거야)하지만 난 target/
(하나는 압축 아카이브, 다른 하나는 루트에 있음)에 2 개의 병이 있으며 그 중 어느 것도 결과 내 MANIFEST.MF
에 내 mainClass 항목을 포함하지 않습니다. 내가 올바른 수 있습니다 생각 project.packaging
에 "치어"를 변경하는 경우
는 target/
의 루트 물론 여분의 항아리 (도망 간다, 그러나 나는이 경고를 얻을 :
[WARNING] Cannot include project artifact: com.anearalone:myapp:pom:0.0.1-SNAPSHOT; it doesn't have an associated file or directory.
[WARNING] The following patterns were never triggered in this artifact inclusion filter:
o 'com.anearalone:myapp'
을 .. . 실제로 내 유물이 아카이브에없는, 그리고 MANIFEST.MF
에 추가하는 항목은 아직 없다.
누구나 초보자를 도울 시간이?
아, 완벽! 나는 [사용 페이지] (http://maven.apache.org/plugins/maven-assembly-plugin/usage.html)에있는 처음 몇 줄에서 이것을 추측 했어야합니다. 매우 감사합니다! – JStroop