簡體   English   中英

如何從第三方jar中排除Java源代碼?

[英]how to exclude java sources from a third party jar?

我的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編譯輸出中:( ..

有任何想法嗎 ?

我的理解是,這是javac的正常行為,除非給出-sourcepath選項,否則它將在整個類路徑中搜索要編譯的源文件(這將是此處的解決方案)。

不幸的是,存在一個有關Maven編譯器插件未將-sourcepath傳遞給javac的Jira問題(請參閱MCOMPILER-98 ),但是有一種解決方法。 因此,請您嘗試一下:

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

提供的范圍會起作用嗎?

來自: http : //maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html

這很像編譯,但是表明您希望JDK或容器在運行時提供依賴項。

您可以將-implicit:none參數傳遞給編譯器

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM