使用Maven的"仅文档"模块的推荐包装是什么?

nob*_*beh 7 maven

我不想在siteMaven Site工作流的文件夹下有多模块Maven项目的文档.文档都生活在project-docsproject-parent.packaging这种模块的最佳实践是什么?

设置是

  1. 打包现在配置为 jar
  2. 有一个Maven插件可以在构建工作流程的prepare-package某个目录(src/main/docs)下生成HTML/PDF文档project-docs.
  3. 有一个defaultMaven程序集描述符生成一个project-docs-NNN-default.zip.
  4. 项目的默认工件是一个空的 JAR文件.

关于上述(3),替代方案:

打包: pom

不支持prepare-package可能是最合适的阶段.如果site使用了阶段,则无法在默认install生命周期内生成生成的文档.

打包: jar

JAR是没用的!

Jea*_*evy 3

由于您不想使用site生成来生成文档,因此我认为没有其他“maven 官方方式”来执行它。

包装

从我的角度来看,您可以使用标准的 POM 打包,通过 maven-assemble-plugin 压缩它并添加一个 classfier(文档或其他所有内容)。

相关问题

这里有一些信息来完成它:

即使已经可以了,但也有有趣的地方。

pom.xml

<groupId>com.mycompany</groupId>
<artifactId>your-project</artifactId>
<version>1.1.0</version>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
                <execution>
                    <id>doc-packaging</id>
                    <goals>
                        <goal>single</goal>
                    </goals>
                    <phase>package</phase>
                    <configuration>
                        <descriptors>
                            <descriptor>/src/main/assembly/doc.xml</descriptor>
                        </descriptors>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

程序集描述符:它将生成此工件:your-project-doc.zip

  • 这(显然)是一个 zip 存档
  • “分类器”是 doc (如程序集名称)

相结合

由于 pom 没有任何需要准备的内容,所以你是对的,没有prepare-package阶段(根据文档)。事实上,您的项目旨在打包 doc ...因此将您的 pdf 插件执行(重新)绑定到package.