如何从第三方jar中排除java源代码?

时间:2010-01-29 01:18:11

标签: java maven-2

我的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编译输出中:( ..

有什么想法吗?

3 个答案:

答案 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>