Maven建立web项目
建立普通Java项目结构
mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes \ -DgroupId=com.alibaba.base -DartifactId=ftpserver
或是:
mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart \ -DgroupId=info.sanaulla -DartifactId=MockitoDemo -DinteractiveMode=false
-
-DarchetypeGroupId
是制定archetype
插件的所属的groupId
。 -
-DgroupId
是制定你将要创建的项目的groupId
。 -
-DartifactId
是制定你要创建的构件ID, 这个例子是ftpserver
。
基本命令
-
mvn clean
-
mvn validate
-
mvn compile
-
mvn test
-
mvn package
-
mvn install
-
mvn site
-
mvn depoly
Java版本
默认只支持1.3
要通过pom.xml
添加插件来支持新版本:
<project> <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.0</version> <configuration> <source>1.7</source> <target>1.7</target> <encoding>utf8</encoding> </configuration> </plugin> </plugins> </pluginManagement> </build> </project>
Jar 包
<project> <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <configuration> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </pluginManagement> </build> </project>
包依赖
pom.xml
中project/dependencies/dependency
对应一个依赖。其中属性scope
为范围
,默认是compile
,可以指定为test
。
检查包依赖
mvn dependency:list
查看当前项目的已解析依赖
mvn dependency:tree
查看当前项目的依赖树
mvn dependency:analyze
分析当前项目的依赖状况,可以找到一些warning:
- 使用了未声明的依赖
- 没有使用已声明的依赖(有些看起来是没有用到,但是他们是spring运行必须的)
导出所有jar包
导出所有需要的jar包到lib目录下:
mvn dependency:copy-dependencies -DoutputDirectory=lib
还可以指定依赖的状态:
mvn dependency:copy-dependencies -DoutputDirectory=lib -DincludeScope=compile
打成可执行jar包
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.6</version> <configuration> <archive> <manifest> <mainClass>example.ScalaAppExample</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin>
mvn assembly:assembly
执行成功后会在target文件夹下多出一个以-jar-with-dependencies
结尾的JAR包.
这个JAR包就包含了项目所依赖的所有JAR的CLASS.
3.如果不希望依赖的JAR包变成CLASS的话,可以修改ASSEMBLY插件.
-
找到assembly在本地的地址,一般是
c:/users/${your_login_name}/.m2/\org\apache\maven\plugins\maven-assembly-plugin\2.4
-
用WINZIP或解压工具打开此目录下的
maven-assembly-plugin-2.4.jar
, 找到assemblies\jar-with-dependencies.xml
- 把里面的UNPACK改成FALSE即可
把源代码打成jar包
mvn source:jar