使用Maven构建站点zip

使用Maven构建站点zip,maven,maven-3,pom.xml,maven-site-plugin,Maven,Maven 3,Pom.xml,Maven Site Plugin,实际上,我生成了一个包含项目文档的maven站点。它工作得非常好,事实上,如果工作得非常好,以至于我的客户希望将该站点作为可交付成果(出于明显的文档目的) 我如何告诉Maven构建整个站点的zip并将其部署到我的工件管理器(Nexus)?我尝试过几种方法,但如果我理解正确,部署工件和生成站点使用的是不同的livecycle,站点生成在工件部署之后发生 很明显,我可以从站点部署期间部署的位置获取生成的站点,但我非常希望使用自动和集中的方式 PS:允许客户访问我们的内部站点不是一个选项。您可以使用。

实际上,我生成了一个包含项目文档的maven站点。它工作得非常好,事实上,如果工作得非常好,以至于我的客户希望将该站点作为可交付成果(出于明显的文档目的)

我如何告诉Maven构建整个站点的zip并将其部署到我的工件管理器(Nexus)?我尝试过几种方法,但如果我理解正确,部署工件和生成站点使用的是不同的livecycle,站点生成在工件部署之后发生

很明显,我可以从站点部署期间部署的位置获取生成的站点,但我非常希望使用自动和集中的方式


PS:允许客户访问我们的内部站点不是一个选项。

您可以使用。

这里是委托给a的一个工作解决方案,用于隔离行为(并加速正常构建),但如果需要,也可以将其集成到默认构建中(尽管不推荐)。

还将在本地Maven缓存中安装压缩的站点。
deploy
阶段将在目标Maven存储库上执行相同的操作

注意,Maven站点插件和复制插件必须按照上面的顺序声明,以便在同一阶段中遵循所需的流程

还要注意的是,如果
zip
不是一个很强的要求,那么您可以跳过复制和构建助手的执行,只使用Maven站点执行。默认情况下,创建的
jar
提供的站点已经连接到构建(因此将自动安装和部署)。为了拥有zip,我们必须禁用此行为(
,在本例中为
site

<profiles>
    <profile>
        <id>site-zip</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>3.4</version>
                    <executions>
                        <execution>
                            <id>pack-site</id>
                            <phase>prepare-package</phase>
                            <goals>
                                <goal>site</goal>
                                <goal>jar</goal>
                            </goals>
                            <configuration>
                                <attach>false</attach>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

                <plugin>
                    <groupId>com.coderplus.maven.plugins</groupId>
                    <artifactId>copy-rename-maven-plugin</artifactId>
                    <version>1.0.1</version>
                    <executions>
                        <execution>
                            <id>rename-file</id>
                            <phase>prepare-package</phase>
                            <goals>
                                <goal>rename</goal>
                            </goals>
                            <configuration>
                                <sourceFile>${project.build.directory}/${project.build.finalName}-site.jar</sourceFile>
                                <destinationFile>${project.build.directory}/${project.build.finalName}-site.zip</destinationFile>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>1.10</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>attach-artifact</goal>
                            </goals>
                            <phase>package</phase>
                            <configuration>
                                <artifacts>
                                    <artifact>
                                        <file>${project.build.directory}/${project.build.finalName}-site.zip</file>
                                        <type>zip</type>
                                        <classifier>site</classifier>
                                    </artifact>
                                </artifacts>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>
mvn clean install -Psite-zip