@zero1036
2018-08-28T02:04:05.000000Z
字数 4569
阅读 2523
工具
| Setting | Content |
|---|---|
| localRepository | 本地仓库路径,默认:${user.home}/.m2/repository |
子项目建议在<parent>中指定使用父项目版本号,参考如下例子
<project><groupId>tg.prj</groupId><artifactId>code-web</artifactId><version>1.0.0-SNAPSHOT</version><modules><module>code-contracts</module><module>code-service</module></modules></project>
<project><parent><artifactId>code-web</artifactId><groupId>tg.prj</groupId><!--指定父项目版本号--><version>1.0.0-SNAPSHOT</version></parent><artifactId>code-contracts</artifactId></project>
项目依赖示例:
<dependencies><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.14</version></dependency></dependencies>
<properties>父项目中可以自定义<properties>,自身及其子项目均可以通过${xxx}调用,可以应用于多项目间同一依赖包的统一版本。例如:
<!--父项目--><project><properties><doll.version>1.1.7</doll.version></properties><project><!--子项目--><project><dependencies><dependency><groupId>tg.prj</groupId><artifactId>doll-core</artifactId><version>${doll.version}</version></dependency></dependencies><project>
<dependencyManagement>父Maven模块中通过dependencyManagement来指定子模块中的Maven依赖版本号。
Java源码文件资源在Maven工程的默认路径是:src/main/java,其他资源文件的默认路径是src/main/resources,Maven在打包时,会将src/main/resources目录的资源文件复制到class目录。
首先,需要有一个packaging类型为pom的pom.xml文件即我们的parent项目pom文件.在这个parent项目中配置好groupId,artifactId,version以及properties,prerequisites,dependencies.
还有一个重要的配置项是modules.加入了这个项目之后执行maven版本号更新时才会同时去更新子模块的版本号.
子模块改变的部分:
<parent><groupId>com.hlf</groupId><artifactId>common-parent</artifactId><version>0.0.1-SNAPSHOT</version></parent><groupId>com.hlf</groupId><artifactId>projectA</artifactId>
发现没有,在这里只放了父模块的version没有放子模块的
>mvn versions:set -DnewVersion=0.0.2-SNAPSHOT
mvn deploy:deploy-file -DgroupId=com.ppmoney.ppcode -DartifactId=ppcode-contracts -Dversion=1.0.2 -Dpackaging=jar -Dfile=D:\TGProject\ppcode-service\ppcode-contracts\target\ppcode-contracts-1.0.2.jar-Durl=http://maven.scm.ppmoney.com/content/repositories/PPMoneyRepos/ -DrepositoryId=PPMoneyRepos
http://www.cnblogs.com/zbw911/p/6439451.html
deploy 400解决办法:http://www.javatang.com/archives/2010/01/23/4518375.html
1、运行前先编译代码,exec:java不会自动编译代码,你需要手动执行mvn compile来完成编译。
mvn compile
2、编译完成后,执行exec运行main方法。
不需要传递参数:
mvn exec:java -Dexec.mainClass="com.vineetmanohar.module.Main"
需要传递参数:
mvn exec:java -Dexec.mainClass="com.vineetmanohar.module.Main" -Dexec.args="arg0 arg1 arg2"
指定对classpath的运行时依赖:
mvn exec:java -Dexec.mainClass="com.vineetmanohar.module.Main" -Dexec.classpathScope=runtime
-Dmaven.test.skip=true
-Dmaven.javadoc.skip=true
mvn dependency:tree
–Dverbose:加上这个参数,可以将当前所有的依赖关系都展示出来,包括来自不同处的依赖项。
–Dincludes:可以进行参数过滤,如果需要查询spring相关的依赖,可以mvn dependency:tree -Dverbose -Dincludes=*spring*:*spring*。当然,可以将输出结果导入到文本中。只需要在命令后加入”>a.txt”即可。
mvn help:effective-pom:
上述命令可以将当前项目自己的POM已经从父类中继承的POM内容输出,可以输出到文本中。
mvn help:effective-pom>a.txt
dependency
在dependency中,可以通过exclusions标签进行依赖排除。
例如,排除spring
<exclusions><exclusion><groupId>org.springframework</groupId><artifactId>spring</artifactId></exclusion></exclusions>
排除所有
<exclusions><exclusion><groupId>*</groupId><artifactId>*</artifactId></exclusion></exclusions>
命令: mvn -pl <arg module name>
-am --also-make: 同时构建所列模块的依赖模块;
-amd -also-make-dependents: 同时构建依赖于所列模块的模块;
-pl --projects <arg>: 构建制定的模块,模块间用逗号分隔;
-rf -resume-from <arg>: 从指定的模块恢复反应堆。
示例:
[INFO] Scanning for projects...[INFO][INFO] ------------------------------------------------------------------------[INFO] Building dubbo-demo-provider 2.5.4-SNAPSHOT[INFO] ------------------------------------------------------------------------[INFO][INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ dubbo-demo-provider ---[INFO] com.alibaba:dubbo-demo-provider:jar:2.5.4-SNAPSHOT[INFO] +- com.alibaba:dubbo-demo-api:jar:2.5.4-SNAPSHOT:compile[INFO] +- com.alibaba:dubbo:jar:2.5.4-SNAPSHOT:compile[INFO] | \- commons-logging:commons-logging:jar:1.1.1:compile[INFO] +- org.springframework:spring:jar:2.5.6.SEC03:compile[INFO] +- org.javassist:javassist:jar:3.15.0-GA:compile[INFO] +- org.jboss.netty:netty:jar:3.2.5.Final:compile[INFO] +- org.apache.mina:mina-core:jar:1.1.7:compile[INFO] +- org.glassfish.grizzly:grizzly-core:jar:2.1.4:compile[INFO] | +- org.glassfish.grizzly:grizzly-framework:jar:2.1.4:compile[INFO] | | \- org.glassfish.gmbal:gmbal-api-only:jar:3.0.0-b023:compile[INFO] | | \- org.glassfish.external:management-api:jar:3.0.0-b012:compile[INFO] | +- org.glassfish.grizzly:grizzly-portunif:jar:2.1.4:compile[INFO] | \- org.glassfish.grizzly:grizzly-rcm:jar:2.1.4:compile