标签:
最近项目涉及到了多源码目录的问题,因为是用的maven管理项目,虽然maven可以配置源码目录,但是不支持多目录结构。如果要实现多源码目录,需要应用相应插件。
下面多maven的源码目录的配置进行简易分析。图1为项目结构。IDE使用的是eclipse。
新增forg的源码目录和prop的配置目录。默认配置的jar包
(jar包中没有 forg目录和prop.properties文件)
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
标签:
原文地址:http://my.oschina.net/kanlianhui/blog/419739