maven自定义目录

maven优势于Ant的原因有很大一部分来自于maven减少了手动的配置,这也导致了他结构的特殊。

maven遵循约定大于配置,默认目录为:

目录src/main/javajava源码目录
目录src/main/resources资源文件目录
目录src/test/java测试java源码目录
目录src/test/resources测试资源文件目录
目录target打包输出目录
目录target/classes编译输出目录
目录target/test-classes测试编译输出目录
目录target/site项目site输出目录
目录src/main/webappweb应用文件目录(当打包为war时),如WEB-INF/web.xml
jar默认打包格式
*Test.javaMaven只会自动运行符合该命名规则的测试类
%user_home%/.m2Maven默认的本地仓库目录位置
中央仓库Maven默认使用远程中央仓库:http://repo1.maven.org/maven2
1.3Maven Compiler插件默认以1.3编译,因此需要额外配置支持1.5


但它也支持对约定目录的自定义更改,通常不建议更改maven默认目录,这将导致maven不能正常处理对应的逻辑,例如:

<build>  
    <sourceDirectory>src/java</sourceDirectory>  
    <testSourceDirectory>src/test</testSourceDirectory>  
    <outputDirectory>output/classes</outputDirectory>  
    <testOutputDirectory>output/test-classes</testOutputDirectory>  
    <directory>target/jar</directory>  
</build> 
上诉代码将java源代码存放在了src/java中,test源代码存放在了src/test中,将编译后的java文件放在了out/classes中,编译后的测试文件放在了output/test-classes中,运行后的打包文件存放在target/jar中。


通常情况下我们会修改webapp目录为WebContent目录,需做如下配置:

<build>
	<finalName>ThesisManage</finalName>
	<!-- 自定义maven结构目录 -->
	<sourceDirectory>src/main/java</sourceDirectory>
	<resources>
		<resource>
			<directory>src/main/resources</directory>
		</resource>
	</resources>
	<testResources>
		<testResource>
			<directory>src/test/resources</directory>
		</testResource>
	</testResources>
		
	<plugins>
		<!-- 定义编译版本为1.7,字符编码为utf8 -->
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<version>2.0.2</version>
			<configuration>
				<source>1.7</source>
				<target>1.7</target>
				<encoding>UTF-8</encoding>
			</configuration>
		</plugin>

		<!-- 修改webapp目录为WebContent -->
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-war-plugin</artifactId>
			<configuration>
				<!-- 设置WebContent目录为Web目录 -->
				<webappDirectory>${basedir}/WebContent</webappDirectory>
				<warSourceDirectory>${basedir}/WebContent</warSourceDirectory>
			</configuration>
		</plugin>
	</plugins>
</build>

其中<webappDirectory>:产生war前,用于存放war的目录

<warSourceDirectory>:将web项目做成eclipse下的WTP类型,即是用WebContent替换webapp

另外:<packagingExcludes>、<warSourceExcludes>都可以用来忽略打war时的部分包的,如:

<packagingExcludes>
	WEB-INF/lib/spring-2.5.**.jar,
	WEB-INF/lib/jersey-servlet-1.17.1.jar
</packagingExcludes>
上面表示在打war包时忽略spring-2.5的包和jersey-servlet-1.17.1.jar


注意:当修改maven的结构为WebContent代替webapp后,部署项目的时候应该使用外部发布模式。因为maven默认是在webapp/WEB-INF下查找applicationContext.xml配置文件,所以应该手动指定它的查找目录。

如:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值