2012-02-08 6 views
1

다른 Jars에 몇 가지 종속성이있는 프로젝트가 있습니다. 현재 JavaDoc 플러그인 및 어셈블리 플러그인을 사용하여 내 Jar, 종속성 Jars 및 javadoc이 포함 된 프로젝트의 .zip을 생성합니다.Maven : jar-with-dependencies + JavaDoc

그러나 관련 JavaDoc과 함께 .zip 안에 하나의 Jar 만 있으므로 종아리 부분을 종결하고 싶습니다. 나는 어셈블리 플러그인 + jar-with-dependencies가 이것에 대한 나의 친구라는 것을 알고 있지만, 어떻게하면 자바 Doc과 함께이 jar를 포함하는 .zip을 패키지화 할 수 있을까요? DIST-jwd.xml의

<properties> 
    <assemblyJar>${project.build.finalName}.jar</assemblyJar> 
    <assemblyJwd>${project.build.finalName}-jar-with-dependencies.jar</assemblyJwd> 
    <java.code.version>1.4</java.code.version> 
    </properties> 

    <plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.2.1</version> <!-- 2.3 might be needed --> 
    <configuration> 
     <descriptors> 
     <descriptor>src/assembly/dist-jwd.xml</descriptor> 
     </descriptors> 
     <descriptorRefs> 
     <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
    </configuration> 
    <executions> 
     <execution> 
     <id>make-jwd</id> 
     <phase>prepare-package</phase> 
     <goals> 
     <goal>single</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 

    <plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.2.1</version> <!-- 2.3 might be needed --> 
    <configuration> 
     <descriptors> 
     <descriptor>src/assembly/dist.xml</descriptor> 
     </descriptors> 
    </configuration> 
    <executions> 
     <execution> 
     <id>make-zip</id> 
     <phase>package</phase> 
     <goals> 
     <goal>single</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 

관련 부품 : dist.xml의

<id>dist-jwd</id> 

    <includeBaseDirectory>true</includeBaseDirectory> 

    <files> 
    <file> 
     <fileMode>444</fileMode> 
     <source>target/${assemblyJar}</source> 
     <outputDirectory></outputDirectory> 
    </file> 
    </files> 

    <dependencySets> 
    <dependencySet> 
     <outputDirectory>lib</outputDirectory> 
     <scope>compile</scope> 
     <excludes> 
     <exclude>javax.servlet:servlet-api</exclude> 
     </excludes> 
     <useProjectArtifact>false</useProjectArtifact> 
    </dependencySet> 
    </dependencySets> 

그리고 관련 부분 : 현재

<id>dist-zip</id> 

    <formats> 
    <format>zip</format> 
    </formats> 

    <includeBaseDirectory>true</includeBaseDirectory> 

    <fileSets> 
    <fileSet> 
     <fileMode>444</fileMode> 
     <directory>target/site/apidocs</directory> 
     <outputDirectory>javadoc</outputDirectory> 
    </fileSet> 
    </fileSets> 

    <files> 
    <file> 
     <fileMode>444</fileMode> 
     <source>target/${assemblyJwd}</source> 
     <outputDirectory></outputDirectory> 
    </file> 
    </files> 

아래에있는 내 치어의

관련 부품 오류가 발생합니다.

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.2.1:single (make-jwd) on project deviceinsight-api-java: Failed to create assembly: Error adding file to archive: /Users/barmistead/Mercurial/deviceinsight-print/target/deviceinsight-api-java-3.1.16-1-SNAPSHOT-jar-with-dependencies.jar isn't a file. -> [Help 1] 

나는 닭고기와 계란에 문제가있을 수 있다고 생각합니다. 따라서 maven에 적절한 해결책이 없다면 수동으로해야 할 것입니다. 그러나, 나는 내가하려고하는 것이 꽤 일반적이라고 생각한다. 그래서 나는 쉬운 방법이있을 것이라고 생각할 것이다.

답변

0

내가 원하는 것을하기 위해 메이븐 (maven) 물건 뒤에 .sh 스크립트를 포기하고 실행했다.

유닉스 구조!

관련 문제