我有一个自定义的java doclet,它会在某些类上调用newInstance():
clazz.newInstance()
当我在Eclipse中作为Junit运行时,它运行良好。
但是当我在maven中运行它时,它会引发异常:NoClassDefFoundError
我检查了那个类,它不在我当前的项目中,它在maven依赖项内(第三方jar)。
我知道我可以在maven-javadoc-plugin中设置classpath。但我的项目有超过50个第三方罐子。如何轻松设置这些罐子?
这是我在maven pom中的代码:
<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>
谢谢!
答案 0 :(得分:0)
我发现maven-javadoc-plugin确实将整个类路径传递给了我的doclet。 但doclet ClassLoader.getSystemClassLoader()没有使用该类路径。
所以我必须手动将这些类路径添加到当前的classLoader中。
在Eclipse中,它会自动设置这些类路径。
答案 1 :(得分:0)
如果在 <template>
<div class="item">
<input
class="item-input"
type="text"
v-model="inputData"
@input="onChangeChild"
:disabled="!activated"
/>
</div>
</template>
<script>
export default {
props: ['propsData', 'propsBoolean'],
data() {
return{
inputData: this.propsData[1],
index: this.propsData[0],
activated: this.propsBoolean
}
},
methods:{
onChangeChild(event){
event.preventDefault()
this.$emit('onChange', this.index,this.inputData)
}
},
的帮助下添加它们会怎样?
<additionalDependencies>
见:https://maven.apache.org/plugins/maven-javadoc-plugin/examples/additional-dependencies.html