我的java项目中有一个jar依赖项,它包含源代码,当我运行mvn compile时,这些java源代码在我编译的maven输出中显示为类文件:(... 如何排除这些文件..(我只想在编译的输出中编写自己的编译文件)
我尝试过类似的事情:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.1-SNAPSHOT</version>
<configuration>
<excludes>
<exclude>**/bv/**/*.java</exclude>
</excludes>
</configuration>
</plugin>
玩了它但是它们一直出现在我的maven编译输出中:( ..
有什么想法吗?
答案 0 :(得分:3)
我的理解是这是javac
的正常行为,它在整个类路径中搜索源文件进行编译,除非给出-sourcepath
选项(这将是解决方案)。
不幸的是,有一个Jira问题,即-sourcepath
没有被Maven编译器插件传递给javac
(请参阅MCOMPILER-98),但有一个解决方法。那么,请你试试这个:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArguments>
<sourcepath>${project.basedir}/src/main/java</sourcepath>
</compilerArguments>
</configuration>
</plugin>
答案 1 :(得分:2)
提供的范围是否有效?
来自:http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html:
这很像编译,但是 表示您期望JDK或 容器提供依赖关系 运行时。
答案 2 :(得分:0)
您可以将-implicit:none
参数传递给编译器
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArgument>-implicit:none</compilerArgument>
</configuration>
</plugin>