Maven实用总结

来源:互联网 发布:主播就是网络乞丐 编辑:程序博客网 时间:2024/05/17 06:59

使用Maven还是推荐IDEA,以前用eclipse总是喜欢出现乱七八糟的问题,具体错误和解决方案也记不清楚了。

下面总结下IDEA中遇到的问题和解决方法:

与IDEA搭配的相关问题

如何根据模板快速创建Maven项目

在创建过程中,properties属性中增加一个

archetypeCatalog = internal

详细请点此

默认JDK1.5的问题

增加配置:

<build>    <plugins>        <plugin>            <groupId>org.apache.maven.plugins</groupId>            <artifactId>maven-compiler-plugin</artifactId>            <configuration>                <source>1.7</source>                <target>1.7</target>                <encoding>UTF-8</encoding>            </configuration>        </plugin>    </plugins></build>

结合Mybatis无法加载配置文件

<resources>    <resource>        <directory>src/main/java</directory>        <includes>            <include>**/*.xml</include>        </includes>    </resource>    <resource>        <directory>src/main/resources</directory>    </resource></resources>

同理还有testResources配置

使用jetty插件运行web项目修改依赖模块无效

<plugin>    <groupId>org.mortbay.jetty</groupId>    <artifactId>maven-jetty-plugin</artifactId>    <version>6.1.9</version>    <configuration>        <contextPath>/web-name</contextPath>        <scanTargets>            <scanTarget>src/main/webapp/WEB-INF</scanTarget>        </scanTargets>        <connectors>            <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">                <port>8087</port>                <maxIdleTime>60000</maxIdleTime>            </connector>        </connectors>    </configuration></plugin>

对于多模块项目,如果修改的是依赖模块的类,就要将该模块install一下再运行.

jetty:run虽然不以打包成war的方式运行,但运行前会去编译与解析子项目,当本地库有了子项目的jar依赖就不会报错,并且web加载的依赖是本地库jar包,而不是从依赖模块的编译目录加载类,所以修改了依赖模块的类,如果没有install更新到本地库,web的加载不是更新类。

当然修改本web的类还是没必要在父项目install,因为jetty:run不会打包本web模块的类成jar,而是从本web模块的编译目录来加载类。

只编译api接口部分

  1. 编写一个client.pom.xml文件

  2. 增加如下配置

<plugin>    <artifactId>maven-jar-plugin</artifactId>    <configuration>        <includes>            <include>**/user/api/**</include>        </includes>    </configuration></plugin>

命令:clean deploy -f client.pom.xml -Dmaven.test.skip=true

windows自动打包脚本

如果svn在内网,nexus部署在外网,没用jenkins的话,可以写一个脚本方便打包

color 02  set project=%~n0  set curdir=%~dp0  set partition=%curdir:~0,1%  cd %curdir:~0,20%  D:@echo build train-share...cd devData\common\train-sharecall mvn clean deploy -Dmaven.test.skip=true@echo build train-user-server...cd ..\..\server\train-user-servercall mvn clean deploy -Dmaven.test.skip=truecall mvn clean deploy -f client.pom.xml -Dmaven.test.skip=trueset nowDate=%date:~0,4%%date:~5,2%%date:~8,2%echo 开始拷贝jar包至桌面 =================================  if exist "%userprofile%\Desktop\" (      REM 适用于Win7系统      xcopy F:\repo\cn\pxzs\train\train-share\0.0.1-SNAPSHOT\train-share-0.0.1-SNAPSHOT.jar %userprofile%\Desktop\%nowDate% /Y /N    xcopy F:\repo\cn\pxzs\train\train-user-server\0.0.1-SNAPSHOT\train-user-server-0.0.1-SNAPSHOT.jar %userprofile%\Desktop\%nowDate% /Y /N    xcopy F:\repo\cn\pxzs\train\train-user-server-api\0.0.1-SNAPSHOT\train-user-server-api-0.0.1-SNAPSHOT.jar %userprofile%\Desktop\%nowDate% /Y /N) echo jar包已经拷贝至桌面 =================================  echo; pause

为不同环境打包

不同环境下需要构建不同的包 点此查看具体


注意:

maven会自动下载相关依赖,当你发布到服务器上时,要小心那些看不见的依赖包

0 0
原创粉丝点击