Mar*_*hač 5 java classpath maven
Maven 识别 4 个类路径:
maven.compile.classpath:编译源代码时需要位于类路径上的类和 jar。所以基本上对于maven-compiler-plugin
maven.test.classpath:运行单元测试或集成测试时需要位于类路径上的类和 jar
maven.runtime.classpath:我知道maven.runtime.classpath包含maven本身需要运行的jar和类。
maven.plugin.classpath:我知道当插件运行它自己的JVM时,这个类路径会传递给maven插件
问题:
事实上,你错了,但我找不到任何明确说明这一点的文档。
这 4 个属性由 Maven 定义maven-antrun-plugin,而不是 Maven 本身的一部分。来自引用 Maven 类路径:
您还可以使用这些类路径引用:
maven.compile.classpathmaven.runtime.classpathmaven.test.classpathmaven.plugin.classpath
该插件创建这 4 个属性,以便 Ant 任务可以引用它们。如果您查看源代码,您将找到创建这些属性的位置,复制此处以供参考
Run Code Online (Sandbox Code Playgroud)Path p = new Path( antProject ); p.setPath( StringUtils.join( mavenProject.getCompileClasspathElements().iterator(), File.pathSeparator ) ); /* maven.dependency.classpath it's deprecated as it's equal to maven.compile.classpath */ antProject.addReference( "maven.dependency.classpath", p ); antProject.addReference( "maven.compile.classpath", p ); p = new Path( antProject ); p.setPath( StringUtils.join( mavenProject.getRuntimeClasspathElements().iterator(), File.pathSeparator ) ); antProject.addReference( "maven.runtime.classpath", p ); p = new Path( antProject ); p.setPath( StringUtils.join( mavenProject.getTestClasspathElements().iterator(), File.pathSeparator) ); antProject.addReference( "maven.test.classpath", p ); /* set maven.plugin.classpath with plugin dependencies */ antProject.addReference( "maven.plugin.classpath", getPathFromArtifacts( pluginArtifacts, antProject ) );
通过分析这段代码,可以得出这样的结论:
maven.compile.classpath对应于类路径中范围为 的元素compile。maven.runtime.classpath对应于类路径中范围为 的元素runtime。maven.test.classpath对应于类路径中范围为 的元素test。maven.plugin.classpath对应于自身的依赖关系maven-antrun-plugin。| 归档时间: |
|
| 查看次数: |
2119 次 |
| 最近记录: |