实际上,我生成了一个包含我项目文档的maven站点。它工作得很好,事实上如果工作得很好,我的客户希望将该网站作为可交付成果(为了明显的文档目的)。
如何告诉Maven构建整个站点的zip并将其部署到我的工件管理器(Nexus)?我已经尝试了几件事,但如果我理解正确,部署工件和生成网站会使用不同的生命周期,并且在部署工件之后会生成网站..
我显然可以从站点部署期间部署的位置获取生成的站点,但我非常感谢自动和集中的方式......
PS:无法选择访问我们内部网站的客户。
答案 0 :(得分:5)
这是一个委托给Maven profile的工作解决方案,用于隔离行为(并加速正常构建),但如果需要,也可以将其集成到默认构建中(尽管不推荐)。
<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>
个人资料实际上在做什么:
site
和jar
目标(也由@khmarbaise建议)。 attach-artifact
目标因此,正在运行
mvn clean install -Psite-zip
还将在您的本地Maven缓存中安装压缩网站。 deploy
阶段将在您的目标Maven存储库中执行相同的操作。
请注意,Maven Site Plugin和Copy Plugin必须按照上面的顺序声明,以便在同一阶段内遵循所需的流程。
另请注意,如果zip
不是强烈要求,则可以跳过复制和构建帮助程序执行,并仅使用Maven站点执行。默认情况下,创建提供站点的jar
已附加到构建(因此将自动安装和部署)。为了获得zip,我们必须禁用此行为(<attach>false</attach>
)并通过Build Helper插件重新附加它。
生成的压缩文件自动为classifier,在这种情况下为site
。
答案 1 :(得分:2)
您可以使用maven-site-plugin。