Maven: jar-с-зависимостями + JavaDoc

У меня есть проект, который зависит от других Jar-файлов. В настоящее время я использую подключаемый модуль JavaDoc и подключаемый модуль Assembly для создания архива .zip моего проекта, который содержит мой Jar, Jar-файлы зависимостей, а также javadoc.

Однако я хотел бы свести к минимуму все, чтобы внутри ZIP-файла был только один Jar вместе с соответствующим JavaDoc. Я знаю, что плагин сборки + jar-with-dependencies - мой друг для этого, но как мне это решить, чтобы я мог упаковать .zip, содержащий эту банку, вместе с моим JavaDoc?

Соответствующие части моего помпа ниже:

  <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:

<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>

И соответствующие части dist.xml:

<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 нет изящного решения, мне придется что-то делать вручную. Однако я думаю, что то, что я пытаюсь сделать, довольно распространено, поэтому я думаю, что есть простой способ.


person Ben    schedule 08.02.2012    source источник


Ответы (1)


В итоге я отказался и запустил сценарий .sh после материала maven, чтобы делать то, что я хотел.

Unix спешит на помощь!

person Ben    schedule 12.03.2012