2012-02-08 8 views
1

私は他のJARにいくつかの依存関係があるプロジェクトを持っています。現在、JavaDocプラグインとアセンブリプラグインを使用して、自分のプロジェクトの.zipを生成します。これには、Jar、依存関係Jars、およびjavadocが含まれています。Maven:jar-with-dependencies + JavaDoc

しかし、関連するJavaDocと一緒に.zip内に1つのJarだけがあるように、私は事をボイルしたいと思います。私はアセンブリプラグイン+ jar-with-dependenciesはこれのための私の友人だと知っていますが、私はJavaDocと一緒にこのjarを含む.zipをパッケージ化できるように、どうすればそれを動作させるのですか?以下の私のポンポンの

関連部品:

<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-jwd.xmlの関連部品: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スクリプトをあきらめて実行しました。

Unix to the rescue!