码迷,mamicode.com
首页 > 其他好文 > 详细

maven配置多个源码目录分析

时间:2015-05-25 20:47:40      阅读:1122      评论:0      收藏:0      [点我收藏+]

标签:

最近项目涉及到了多源码目录的问题,因为是用的maven管理项目,虽然maven可以配置源码目录,但是不支持多目录结构。如果要实现多源码目录,需要应用相应插件。

下面多maven的源码目录的配置进行简易分析。图1为项目结构。IDE使用的是eclipse。

技术分享

新增forg的源码目录和prop的配置目录。默认配置的jar包

技术分享

技术分享

(jar包中没有 forg目录和prop.properties文件)

  1. maven配置指定源码目录,增加资源目录

maven有一套默认的目录结构,使用maven一般需要遵循此结构来组织项目,默认的配置结构说明文档

http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

maven可以在pom文件中修改默认的配置。官方的QA如下:

http://maven.apache.org/general.html#dir-struct

文中提及

By configuring <sourceDirectory>, <resources> and other elements of the <build> section

修改pom方法例子

1、修改默认的源码目录和修改资源文件

    <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官方文档地址(大多问题都能找到答案)

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




maven配置多个源码目录分析

标签:

原文地址:http://my.oschina.net/kanlianhui/blog/419739

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!