我使用maven很不熟练,在eclipse上开发时编译相关的配置都是由eclipse完成的。
而今天需要将maven工程从svn上checkout到linux服务器上,并且由maven编译,就有问题了。
首先,是maven的编译版本不对,默认的是1.3,很多想注解,foreach的用法主有1.5之后才支持。
经过询问得知,由于要部署的web工程是通过eclipse的maven设置向导新创建的,所以pom里的一些配置并没有继承工程组的pom文件里的配置,所以才编译版本过低。在pom文件加上下面代码后则问题解决:
经研究发现在工程组的pom文件里,无非就是在build标签里多了下面一段代码,所以我觉得(并没实验)在自己创建的maven工程的pom文件里加上它也应该就能解决问题:
其次,是maven编译的路径不对,我之前在eclipse上通过build path设置的编译路径跟maven中的配置是半毛钱关系没有,最终加上下面代码才将问题解决:
而今天需要将maven工程从svn上checkout到linux服务器上,并且由maven编译,就有问题了。
首先,是maven的编译版本不对,默认的是1.3,很多想注解,foreach的用法主有1.5之后才支持。
经过询问得知,由于要部署的web工程是通过eclipse的maven设置向导新创建的,所以pom里的一些配置并没有继承工程组的pom文件里的配置,所以才编译版本过低。在pom文件加上下面代码后则问题解决:
- <parent>
- <artifactId>api-t-xxx</artifactId>
- <groupId>com.xxx.t</groupId>
- <version>1.1-SNAPSHOT</version>
- </parent>
经研究发现在工程组的pom文件里,无非就是在build标签里多了下面一段代码,所以我觉得(并没实验)在自己创建的maven工程的pom文件里加上它也应该就能解决问题:
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <inherited>true</inherited>
- <configuration>
- <fork>true</fork>
- <meminitial>128m</meminitial>
- <maxmem>768m</maxmem>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-release-plugin</artifactId>
- <version>2.1</version>
- </plugin>
- </plugins>
- </pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-resources-plugin</artifactId>
- <configuration>
- <encoding>UTF-8</encoding>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>2.3.2</version>
- <configuration>
- <compilerArguments>
- <source>1.6</source>
- <target>1.6</target>
- <encoding>UTF-8</encoding>
- </compilerArguments>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-release-plugin</artifactId>
- <version>2.0-beta-9</version>
- <configuration>
- <tagBase>http://192.168.105.28:89/svn/t-sohu/web2.0/api-t-sohu-2.0/tags</tagBase>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-release-plugin</artifactId>
- <version>2.1</version>
- </plugin>
- </plugins>
其次,是maven编译的路径不对,我之前在eclipse上通过build path设置的编译路径跟maven中的配置是半毛钱关系没有,最终加上下面代码才将问题解决:
- <build>
- <finalName>upload</finalName>
- <outputDirectory>src/main/webapp/WEB-INF/classes</outputDirectory>
- </build>