【问题标题】:Scaladoc options with Maven使用 Maven 的 Scaladoc 选项
【发布时间】:2016-04-14 02:38:07
【问题描述】:

我正在寻找有关 Maven 的 scala-maven-plugin 的帮助。我想生成我的 Scaladoc,但我遇到了一些问题。

我实际上可以通过输入以下命令来创建我的 Scaladoc:

mvn scala:doc

现在的问题是我想在生成Scaladoc的时候添加一些选项,比如-no-link-warnings

有人知道怎么做吗?我找到了一种方法(下面的代码有效),但我认为我不应该这样做。

我的 pom 文件是:

<build>
    ...
    <plugins>
        <plugin>
            <!-- see http://davidb.github.com/scala-maven-plugin -->
            <groupId>net.alchim31.maven</groupId>
            <artifactId>scala-maven-plugin</artifactId>
            <version>3.2.1</version>
            <configuration>
                <args>
                    <arg>-no-link-warnings</arg>
                </args>
            </configuration>
            <executions>
                <execution>
                    <id>Compile</id>
                    <goals>
                        <goal>compile</goal>
                        <goal>testCompile</goal>
                    </goals>
                    <configuration>
                        <args>
                            <arg>-dependencyfile</arg>
                            <arg>${project.build.directory}/.scala_dependencies</arg>
                        </args>
                    </configuration>
                </execution>
            </executions>
        </plugin>
   ...
   </plugins>

编辑

用户 Tunaki 在第一次回复时建议了更好的方法,您可以在此处查看代码。

【问题讨论】:

    标签: scala maven scaladoc scala-maven-plugin


    【解决方案1】:

    你的配置是完全正确的,虽然你可以写得有点不同。目前(忘记编译源代码的部分),你有:

    <plugin>
        <groupId>net.alchim31.maven</groupId>
        <artifactId>scala-maven-plugin</artifactId>
        <version>3.2.1</version>
        <configuration>
            <args>
                <arg>-no-link-warnings</arg>
            </args>
        </configuration>
    </plugin>
    

    通过这样的配置,您声明scala-maven-plugin 的每次执行都将具有附加参数-no-link-warnings。这是因为您在全局配置元素中声明它。你可以有一个特定于插件执行的配置,就像你在编译部分的配置一样:

    <execution>
        <id>Compile</id>
        <goals>
            <goal>compile</goal>
            <goal>testCompile</goal>
        </goals>
        <configuration>
            <args>
                <arg>-dependencyfile</arg>
                <arg>${project.build.directory}/.scala_dependencies</arg>
            </args>
        </configuration>
    </execution>
    

    只有在调用执行 Compile 时才会考虑此配置。


    因此,最好将配置更改为特定于插件的执行,因为参数 -no-link-warnings 确实特定于生成 Scaladoc。

    这将是最终的插件声明:

    <plugin>
        <groupId>net.alchim31.maven</groupId>
        <artifactId>scala-maven-plugin</artifactId>
        <version>3.2.1</version>
        <executions>
            <execution>
                <id>Scaladoc</id>
                <goals>
                    <goal>doc</goal>
                </goals>
                <phase>prepare-package</phase>
                <configuration>
                    <args>
                        <arg>-no-link-warnings</arg>
                    </args>
                </configuration>
            </execution>
            <execution>
                <id>Compile</id>
                <goals>
                    <goal>compile</goal>
                    <goal>testCompile</goal>
                </goals>
                <configuration>
                    <args>
                        <arg>-dependencyfile</arg>
                        <arg>${project.build.directory}/.scala_dependencies</arg>
                    </args>
                </configuration>
            </execution>
        </executions>
    </plugin>
    

    然后,例如,当您使用 mvn package 打包项目时,Scaladoc 将使用正确的参数自动生成。

    【讨论】:

    • 很抱歉再次打扰您,但我一直在考虑这个问题,但仍有一件事我无法真正实现。如果我想执行命令mvn scala:doc 只生成文档怎么办?再次,我尝试了几种配置,但它们似乎没有读取参数。
    • @Rors 如果你使用的是最新的 Maven,你可以使用 mvn scala:doc@Scaladoc 来执行这个特定的执行。
    • 哦,我不知道你也可以用 Maven 做类似的事情,我还需要学习很多东西。再次完美清晰,非常感谢您
    猜你喜欢
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 2012-10-20
    • 2014-12-26
    • 2019-05-03
    • 2012-08-31
    • 2012-06-14
    • 1970-01-01
    相关资源
    最近更新 更多