Jade Dungeon

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.xmlproject/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插件.

  1. 找到assembly在本地的地址,一般是c:/users/${your_login_name}/.m2/\org\apache\maven\plugins\maven-assembly-plugin\2.4
  2. 用WINZIP或解压工具打开此目录下的maven-assembly-plugin-2.4.jar, 找到assemblies\jar-with-dependencies.xml
  3. 把里面的UNPACK改成FALSE即可

把源代码打成jar包

mvn source:jar