maven配置多個源碼目錄分析

最近項目涉及到了多源碼目錄的問題,由於是用的maven管理項目,雖然maven能夠配置源碼目錄,可是不支持多目錄結構。若是要實現多源碼目錄,須要應用相應插件。html

下面多maven的源碼目錄的配置進行簡易分析。圖1爲項目結構。IDE使用的是eclipse。apache

新增forg的源碼目錄和prop的配置目錄。默認配置的jar包app

(jar包中沒有 forg目錄和prop.properties文件)eclipse

  1. 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

http://stackoverflow.com/questions/6352208/how-to-solve-plugin-execution-not-covered-by-lifecycle-configuration-for-sprin

官方也提供瞭解決方案,我選擇了最後一種方案(配置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官方文檔地址(大多問題都能找到答案)

http://maven.apache.org/guides/index.html

相關文章
相關標籤/搜索