最近項目涉及到了多源碼目錄的問題,由於是用的maven管理項目,雖然maven能夠配置源碼目錄,可是不支持多目錄結構。若是要實現多源碼目錄,須要應用相應插件。html
下面多maven的源碼目錄的配置進行簡易分析。圖1爲項目結構。IDE使用的是eclipse。apache
新增forg的源碼目錄和prop的配置目錄。默認配置的jar包app
(jar包中沒有 forg目錄和prop.properties文件)eclipse
maven配置指定源碼目錄,增長資源目錄maven
maven有一套默認的目錄結構,使用maven通常須要遵循此結構來組織項目,默認的配置結構說明文檔
ide
http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html ui
maven能夠在pom文件中修改默認的配置。官方的QA以下:spa
http://maven.apache.org/general.html#dir-struct 插件
文中說起命令行
By configuring <sourceDirectory>, <resources> and other elements of the <build> section
修改pom方法例子
一、修改默認的源碼目錄和修改資源文件
<sourceDirectory>${project.basedir}/src/forg</sourceDirectory> <resources> <resource> <directory> ${project.basedir}/src/prop </directory> <includes> <include> **/*.properties </include> </includes> </resource> <resource> <directory> ${project.basedir}/src/main/resources </directory> </resource> </resources>
修改後clean install的jar包
2.多源碼目錄配置
maven不支持多源碼的配置,須要引用第三方插件Build Helper Maven Plugin 。當前此插件的版本是1.9.1.
配置方法:
<plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>1.9.1</version> <executions> <execution> <id>add-source</id> <phase>generate-sources</phase> <goals> <goal>add-source</goal> </goals> <configuration> <sources> <source>${project.basedir}/src/forg</source> </sources> </configuration> </execution> </executions> </plugin> </plugins>
配置後的jar包成功打入兩個目錄下的源碼文件。
3.eclipse的m2e報錯
maven打包是用的命令行。eclipse的m2e插件不支持上述配置,有報錯。官方說明:
http://eclipse.org/m2e/documentation/m2e-execution-not-covered.html
官方也提供瞭解決方案,我選擇了最後一種方案(配置lifecycleMappingMetadata):
<?xml version="1.0" encoding="UTF-8"?> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <goals> <goal>add-source</goal> </goals> <versionRange>[0.0,)</versionRange> </pluginExecutionFilter> <action> <ignore /> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata>
reload配置以後錯誤消失。
附上maven官方文檔地址(大多問題都能找到答案)