如何从第三方jar中排除java源代码?
我的java项目中有一个jar依赖项,它也包含源代码,当我运行mvn compile时,这些java源代码在我编译的maven输出中显示为类文件:(。。。 如何排除这些文件…(我只希望在编译输出中包含我自己的编译文件) 我试过这样的方法:如何从第三方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>
<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将被包括在战争中…确切地说,我在尝试解决它时也注意到了这个问题…确实注意到了解决方法。不过,谢谢,我似乎工作了…)