@zero1036
2018-08-28T10:04:05.000000Z
字数 4569
阅读 2274
工具
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