[英]Eclipse maven build path issue in case of custom sourceDirectory
我已將現有的 Java 項目轉換為 Maven 項目,並且 Maven 在使用命令行時完美地構建了所有內容。
當我將同一個項目導入 Eclipse 並編譯時(通過右鍵單擊項目 -> 作為 Maven 構建運行,它仍然可以毫無問題地編譯。
但是,我看不到源文件夾。 當我檢查構建路徑時,它會發出警告 - 缺少構建路徑條目。
我沒有使用標准的src/main/java
因為我有一個無法更改的項目預先存在的文件夾結構。
這是我的 pom(注意sourceDirectory
標簽):
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycom</groupId>
<artifactId>maven</artifactId>
<version>17.4</version>
<name>maven</name>
<properties>
<projecrt.rootDir>../../java</projecrt.rootDir>
</properties>
<build>
<finalName>re</finalName>
<sourceDirectory>${projecrt.rootDir}</sourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifestEntries>
<Build-Version>${buildversion}</Build-Version>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</project>
這是我的目錄結構:
Src/java
----maven/pom.xml
----com/mycom/<...> // application code
你可以使用這個build-helper-maven-plugin
並以這種方式在您的 pom 文件中配置它
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>some directory</source>
...
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
現在,當您執行mvn eclipse:eclipse
,自定義源文件夾將被添加到.project
文件中的類路徑條目中。 因此,您無需進行任何手動配置,您的配置將在運行時輕松構建。 如果您的測試在自定義源文件夾中,您也可以對測試源執行相同的操作。 希望這可以幫助。
在 Eclipse 工作區中導入 Java 項目后,您可以指定實際的 src 文件夾:
單擊打開 Java 透視圖窗口 > 打開透視圖 > 其他... > Java 以更改為 Java 透視圖。
在您的項目設置( project => property => java build path
)中,您還可以更改/添加 src 文件夾:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.