我有以下用于 exec maven 插件的 pom.xml 配置,但它僅在主類位于 src/main/java 中時有效,如果它位于 src/test/java 中則無效。我不希望這個主類最終出現在分發/發布中。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>myexec</id>
<phase>generate-test-sources</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>java</executable>
<classpathScope>test</classpathScope>
<arguments>
<argument>-classpath</argument>
<classpath/>
<argument>com.mypackage.SomeMainClass</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
這里的問題是我試圖在編譯之前運行一個類(在 generate-test-sources 步驟之后,它與測驗源一起編譯)。com.mypackage.SomeMainClass生成要編譯和運行的測驗源 *TestCase.java。
那么,如果我不希望主類最終出現在已發布的 jar 中,我該怎么辦?我寧愿不為此開發 Maven 插件。
uj5u.com熱心網友回復:
最干凈的解決方案可能是將此類視為其自己的外部可執行檔案,從而將其構建為一個單獨的模塊。這將涉及將該專案轉變為一個 Maven 多模塊專案(如果它還不是的話)。
https://www.mojohaus.org/exec-maven-plugin/examples/example-exec-using-plugin-dependencies.html
然而,快速而骯臟的解決方案...... Maven 允許您設定排除項。如果您不希望某些東西最終出現在發布罐中,請將其過濾掉。IE :
從 jar maven 依賴項中排除 .class 檔案
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/534376.html
標籤:爪哇行家
