使用Java9的Maven Site插件

6
我在Travis上使用Java9(Oracle JDK 9)运行CI构建时遇到了问题。 maven-site-plugin失败 - 删除后一切正常。
我尝试删除其他所有内容以检查可能的依赖项冲突,只留下这一个插件构建仍然失败。 它只是一个POM容器,即使是简单的站点插件(更新为声称已准备好java9的最新版本),仍然无法通过。
这是所有资源: 在网上寻找类似的问题时,我发现通常是插件兼容性(所有插件都已更新)或不同的依赖项版本,但我删除了所有内容,它仍然失败。

这些构建在本地的 OpenJDK 9 上可以完美运行。

-编辑-

应用了 @nullpointer 的提示后:

1个回答

3
您应该等待并更新到使用版本3.7的站点插件,如此处所述:这里
看起来您遇到了类似于#MSITE-796的问题。
从相同的链接中进一步引用:
“由于需要先发布未决的SNAPSHOT依赖项,因此发布还需要一些时间。因此,请耐心等待或将doxia-sitetools 1.7.5添加为maven-site-plugin在您自己的项目中的依赖项。”
<dependency>
    <groupId>org.apache.maven.doxia</groupId>
    <artifactId>doxia-sitetools</artifactId>
    <version>1.7.5</version>
</dependency>

由于 doxia-sitetools 只是一个pom容器项目,因此需要直接更新其所有模块:

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>3.6</version>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.doxia</groupId>
                        <artifactId>doxia-decoration-model</artifactId>
                        <version>1.7.5</version>
                    </dependency>

                    <dependency>
                        <groupId>org.apache.maven.doxia</groupId>
                        <artifactId>doxia-skin-model</artifactId>
                        <version>1.7.5</version>
                    </dependency>

                    <dependency>
                        <groupId>org.apache.maven.doxia</groupId>
                        <artifactId>doxia-integration-tools</artifactId>
                        <version>1.7.5</version>
                    </dependency>

                    <dependency>
                        <groupId>org.apache.maven.doxia</groupId>
                        <artifactId>doxia-site-renderer</artifactId>
                        <version>1.7.5</version>
                    </dependency>

                    <dependency>
                        <groupId>org.apache.maven.doxia</groupId>
                        <artifactId>doxia-doc-renderer</artifactId>
                        <version>1.7.5</version>
                    </dependency>
                </dependencies>
            </plugin>

不错的提示,但仅仅这样做是行不通的 - doxia-sitetools 是一个 pom 包 - https://travis-ci.org/chilloutdevelopment/pl.chilldev.parent/builds/294966927#L1027 (包括 <type>pom</type> 的依赖也不会影响传递依赖)。有没有什么方法可以实现这个目标,或者我需要手动输入所有 Doxia 组件? - Rafał Wrzeszcz
@RafałWrzeszcz 请在问题中分享更新的pom组件。虽然错误看起来很奇怪,但您是否尝试将依赖项指定为<depedencies>标签下或插件依赖项内部? - Naman
2
作为插件的依赖项。最终使其工作!更新了你的答案以包含可工作的最终代码片段。根据 Git 历史记录,那很长 ;P - Rafał Wrzeszcz
@RafałWrzeszcz 只是想知道,在项目的直接 <dependencies> 中使用 doxia-sitetools 1.7.5 是否不起作用? - Naman
1
不对。https://travis-ci.org/chilloutdevelopment/pl.chilldev.parent/builds/294977863#L472如果我理解正确的话,这是完全符合预期的——项目依赖项参与构建工件,而不是构建时环境,这是插件运行时。 - Rafał Wrzeszcz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接