最近在做一个非标准目录的项目,但想使用maven管理,标准的java source路径为src/main/java
resource路径为src/main/resource.而这个项目现在的路径为src/java和src/conf.因此,在maven的pom中加上如下配置即可:
<build>
......
<sourceDirectory>src/java</sourceDirectory>
<testSourceDirectory>src/java.test</testSourceDirectory>
<resources>
<resource>
<directory>src/conf</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
<resource>
<directory>src/java</directory>
<includes>
<include>**/*</include>
</includes>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<testResources>
<testResource>
<directory>src/conf.test</directory>
<includes>
<include>**/*</include>
</includes>
</testResource>
<testResource>
<directory>src/java.test</directory>
<includes>
<include>**/*</include>
</includes>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</testResource>
</testResources>
......
</build>这样maven打包时,就会编绎在src/java文件夹下的java文件,并将src/conf下的配置文件放到target的classes下;
如果还有其它在打包时,自动生成的java代码,或是多个java文件目录,那可以考虑使用专门做这个工作的plugin,配置如下:
<plugins>
......
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${basedir}/src/java</source>
<source>自定义的folder</source>
</sources>
</configuration>
</execution>
<execution>
<id>add-test-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>${basedir}/src/java.test</source>
<source>自定义的folder</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
......
</plugins>
另外,如果web project中的webapp资源也不在标准的maven-war-plugin默认路径:${basedir}/src/main/webapp下,那么需要加入如下配置
<plugins>
......
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1-beta-1</version>
<configuration>
<!-- 这里是你的webapp目录 -->
<warSourceDirectory>${basedir}/src/webroot</warSourceDirectory>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
<manifestEntries>
<timestamp>${timestamp}</timestamp>
</manifestEntries>
</archive>
</configuration>
</plugin>
......
</plugins>