如何避免在maven-site-plugin中检查父项目?

5gfr0r5j  于 2023-04-05  发布在  Maven
关注(0)|答案(6)|浏览(189)

我有一个小的maven项目。我试图通过maven-site-plugin添加生成站点,但它不起作用。当我构建这个项目时,我得到以下错误:
[错误]无法在项目服务器上执行goal org.apache.maven.plugins:maven-site-plugin:3.3:site(default-site)-wms-product:SiteToolException:无法从存储库解析站点描述符:ArtifactResolutionException:找不到站点描述符:Could not transfer artifact [PARENT-PROJECT]:xml:site_en:1.0.141.1from/to eclipse(http://maven.eclipse.org/nexus/content/repositories/testing/):拒绝连接到http://maven.eclipse.org
我的项目是其他项目的扩展,所以在我的pom.xml中设置了不是我的父项目,我不能在那里添加站点配置。
那么,在站点生成中是否有机会跳过检查父项目的站点?
我的pom.xml看起来像这样:

<project>
       <parent>
        <artifactId>base-server-product</artifactId>
        <groupId>XXXXXXXXXXXx</groupId>
        <version>1.0</version>
    </parent>
        <build>
             <plugins>
                <plugin>
                   <groupId>org.apache.maven.plugins</groupId>
                   <artifactId>maven-site-plugin</artifactId>
                   <version>3.3</version>
                   <configuration>
                      <reportPlugins>
                      </reportPlugins>
                   </configuration>
                </plugin>
             </plugins>
       </build>
    </project>

当然,我在src/site中有site.xml文件。

4xrmg8kj

4xrmg8kj1#

attaching the site descriptor配置到父pom中的工件。

<project>
  <artifactId>base-server-product</artifactId>
  <groupId>XXXXXXXXXXXx</groupId>
  <version>1.0</version>
  ...
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-site-plugin</artifactId>
        <executions>
          <execution>
            <id>attach-descriptor</id>
            <goals>
              <goal>attach-descriptor</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  ...
</project>

在maven 3中,核心功能已经从站点生成中分离出来了。你可以找到原因here。如果你想从子模块引用父模块的站点,你必须将site.xml附加到部署的工件上。

q43xntqr

q43xntqr2#

我也有同样的问题,在谷歌上搜索了很多之后,发现这篇文章解决了我的问题:
http://amanica.blogspot.com/2010/08/archiva-gives-maven-site-plugin-invalid.html?m=1
基本上,您需要将基本site_en.xml添加到父pom.xml中的/src/site/文件夹中。

5sxhfpxr

5sxhfpxr3#

出于某种我无法理解的原因,对我来说,在离线模式下运行一次maven就足够了。

pcrecxhr

pcrecxhr4#

我在一个开源项目中遇到了这个问题,我并不拥有这个项目,我想向以这种方式生成的网站提交更新。我想在本地测试和查看更改,但一直遇到这个错误。
用户@Frischling在上面提到了这一点(归功于他们)。事实证明,我想要的不是编辑任何现有信息或更新任何pom.xml文件,而是完全在离线模式下构建。
我试图运行这个命令,它失败了,出现了原始海报提到的错误:

mvn site

若要改为脱机执行此生成,请执行以下命令:

# Download the dependencies for the target
mvn dependency:go-offline site

# Build the target offline
mvn --offline site

然后,输出正确地生成到target/site目录,就像我预期的那样。
如果你拥有这个项目或项目的一部分,这并不理想,但对于像我这样的情况,我没有拥有它,这是一个完美的选择。

q9yhzks0

q9yhzks05#

以前的答案对我不起作用。
但马克的一个,在这里,解决了我的问题:https://stackoverflow.com/a/57429991/5056068
艾蒂安

efzxgjgh

efzxgjgh6#

我遇到了下面这样的错误,我认为这是因为检查父项目站点xml。
但是我认为org.springframework.boot:spring-boot-starter-parent:xml:site_en:2.7.4是从父项目spring-boot-starter-parent和版本2.7.4和默认语言en拼接而来的mvn site,所以mvn仓库永远找不到这个xml。
参考最后两个答案,您可以使用mvn --offline site在本地存储库中生成一个空的xml。
第一个mvn --offline site将返回相同的错误并生成xml。
然后你可以免费使用mvn site来避免检查父项目。

SiteToolException: The site descriptor cannot be resolved from the repository: ArtifactResolutionException: Una
ble to locate site descriptor: Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:xml:site_en:2.7.4

相关问题