在 JAR 的资源中包含 Maven 站点 HTML 页面
Include Maven Site HTML pages in JAR's resources
我有一个构建 JAR 文件的 Maven 项目。
它还会创建一个网站(使用 maven-site-plugin
)来描述有关项目的信息。
我想将 maven-site-plugin
生成的结果 html 页面包含在创建的 JAR 的资源中,以便帮助系统可以在运行时访问它们。
这可能吗?如果是,怎么做?
我试过使用 site:jar
目标,但这总是会创建一个 附加 JAR,并根据 documentation 添加“-site”。
我已经解决了这个问题,方法是使用 maven-resources-plugin
将 site
从 ${project.build.directory}/site
目录复制到 ${project.build.directory}/classes
,这是最终 JAR 的内容。
示例:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.me</groupId>
<artifactId>site-example</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<site.directory>${project.build.directory}/site</site.directory>
</properties>
<build>
<resources>
<resource>
<directory>${site.directory}</directory>
</resource>
</resources>
<plugins>
<plugin>
<!-- Include the maven site in the final JAR - we do this by running site:site BEFORE install -->
<artifactId>maven-resources-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>install</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}</outputDirectory>
<resources>
<resource>
<directory>${site.directory}</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
我有一个构建 JAR 文件的 Maven 项目。
它还会创建一个网站(使用 maven-site-plugin
)来描述有关项目的信息。
我想将 maven-site-plugin
生成的结果 html 页面包含在创建的 JAR 的资源中,以便帮助系统可以在运行时访问它们。
这可能吗?如果是,怎么做?
我试过使用 site:jar
目标,但这总是会创建一个 附加 JAR,并根据 documentation 添加“-site”。
我已经解决了这个问题,方法是使用 maven-resources-plugin
将 site
从 ${project.build.directory}/site
目录复制到 ${project.build.directory}/classes
,这是最终 JAR 的内容。
示例:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.me</groupId>
<artifactId>site-example</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<site.directory>${project.build.directory}/site</site.directory>
</properties>
<build>
<resources>
<resource>
<directory>${site.directory}</directory>
</resource>
</resources>
<plugins>
<plugin>
<!-- Include the maven site in the final JAR - we do this by running site:site BEFORE install -->
<artifactId>maven-resources-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>install</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}</outputDirectory>
<resources>
<resource>
<directory>${site.directory}</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>