首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在maven-javadoc-plugin中正确设置类路径?

如何在maven-javadoc-plugin中正确设置类路径?
EN

Stack Overflow用户
提问于 2018-02-07 20:20:53
回答 2查看 688关注 0票数 1

我有一个定制的java,它将在一些类上调用newInstance():

代码语言:javascript
复制
clazz.newInstance()

当我以Junit的身份在Eclipse中运行它时,它运行得很好。

但是当我在maven中运行它时,它会抛出一个异常: NoClassDefFoundError

我检查了那个类,它不在我的当前项目中,它在maven依赖项(第三方jar)中。

我知道我可以在maven-javadoc-plugin中设置类路径。但我的项目有50多个第三方罐子。我怎样才能轻松地把那些罐子装好?

这是我在maven pom中的代码:

代码语言:javascript
复制
            <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>3.0.0-M1</version>
            <configuration>
                <doclet>my.company.common.doclet.MyDoclet</doclet>

                <docletPath>${project.build.directory}/../../shared-java/target/classes;${project.build.directory}/classes</docletPath>
                <sourcePath>${project.build.directory}/../../shared-java/src/java;${project.build.directory}/../src/java</sourcePath>
                <encoding>UTF-8</encoding>
                <show>public</show>
                <subpackages>my.company.api</subpackages>
                <useStandardDocletOptions>false</useStandardDocletOptions>
                <docletArtifacts>                       
                    <dependency>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                        <version>${log4j.version}</version>
                    </dependency>                       
                </docletArtifacts>

            </configuration>
            <executions>
                <execution>
                    <id>attach-javadoc</id>
                    <phase>post-integration-test</phase>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-09 20:07:34

我发现maven-javadoc-plugin将整个类路径传递给我的doclet。但是doclet ClassLoader.getSystemClassLoader()没有使用这个类路径。

因此,我必须手动将这些类路径添加到当前的classLoader中。

在Eclipse中,它将自动设置这些类路径。

票数 0
EN

Stack Overflow用户

发布于 2021-01-19 03:03:37

如果在<additionalDependencies>的帮助下添加它们会怎么样?

代码语言:javascript
复制
        <configuration>
          ...
          <additionalDependencies>
            <additionalDependency>
              <groupId>log4j</groupId>
              <artifactId>log4j</artifactId>
              <version>${log4j.version}</version>
            </additionalDependency>
          </additionalDependencies>
          ...
        </configuration>

请参阅:https://maven.apache.org/plugins/maven-javadoc-plugin/examples/additional-dependencies.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48672589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档