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

如何从第三方jar中排除java源代码?,java,maven-2,Java,Maven 2,我的java项目中有一个jar依赖项,它也包含源代码,当我运行mvn compile时,这些java源代码在我编译的maven输出中显示为类文件:(。。。 如何排除这些文件…(我只希望在编译输出中包含我自己的编译文件) 我试过这样的方法: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId>

我的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>

org.apache.maven.plugins
maven编译器插件
2.1-快照
**/bv/***/.java
玩过它,但它们一直出现在我的maven编译输出中:(


有什么想法吗?

提供的范围是否可行

发件人::

这很像编译,但是 表示您希望使用JDK或 提供依赖项的容器 运行时


我的理解是,除非给出
-sourcepath
选项(这就是这里的解决方案),否则这是搜索整个类路径以编译源文件的正常行为

不幸的是,Maven编译器插件(请参阅)没有将
-sourcepath
传递给
javac
,但存在一个Jira问题。因此,您可以尝试以下方法:

<plugin>
  <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    <compilerArguments>
      <sourcepath>${project.basedir}/src/main/java</sourcepath>
    </compilerArguments>
  </configuration>
</plugin>

maven编译器插件
${project.basedir}/src/main/java

您可以将
-implicit:none
参数传递给编译器

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
      <compilerArgument>-implicit:none</compilerArgument>
    </configuration>
  </plugin>

org.apache.maven.plugins
maven编译器插件
-含蓄:无

你所说的“maven编译输出”是什么意思?你只是说包含源代码的第三方库在WAR文件中吗?你所说的“也包含源代码”是什么意思?你的意思是JAR包含源代码和编译代码吗?检查-描述了这个问题。不,因为它最终必须打包到war文件中,所以我看不出它是如何工作的…现在我将第三方源类打包在我自己的JAR中作为类文件,第三方JAR包含他的类和源…:(…听起来不太健康…让我看看我是否做对了:您的jar依赖于第三方jar,这也需要编译。第三方jar和您的jar将被包括在战争中…确切地说,我在尝试解决它时也注意到了这个问题…确实注意到了解决方法。不过,谢谢,我似乎工作了…)