之前在实验室做web开发用的seam框架就是用maven部署的,但也只是用项目中pom文件里写好的几个命令而已,并不了解maven的具体细节,最近没事看了一个maven的具体用法,在这先说一下maven是如何创建普通的java项目的:
1首先运行如下命令:
mvn archetype
2 然后需要稍等一会,时间可能会稍微有点长,如果你觉的时间太长而且选择的项目模板太多可以运行:
mvn archetype:generate -DarchetypeCatalog=internal
,archetypeCatalog表示插件使用的archetype元数据,默认值为remote,local,即中央仓库archetype元数据(http://repo1.maven.org/maven2/archetype-catalog.xml)加上插件内置元数据的和 由于中央仓库的archetype太多,导致这个列表太长, 因此自己指定仅用内置元数据( 20 个左右,好像),就可以解决你的烦恼了。
然后屏幕上会出现这样的提示选择的信息:
如果是普通java程序就回车确定,如果是其它类型的项目就根据提示选择。然会会让你选择 版本
默认是选择6的(这个版本应该是比较稳定的),所以可以直接回车。
3 然后在命令行的提示下输入你要建的项目的 groupId,artifactId,以及version等。
4 一切就绪之后就可以 创建项目了。
5 新建的项目下执行 : mvn clean package 一般会 失败,原因是默认生成的pom 文件 不支持注解(默认生成的test类中含有注解)的,而且还要需要声明主类(实现main方法的类)。把下面这段代码贴到pom.xml的根目录下就可以解决问题了。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>//此处用来声明 编译结果所支持的jdk的最高版本,从 1.5之后就支持注解了
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>cn.sdut.App(此处是你的项目的主类)</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
5 此时 再执行: mvn clean package 就成功le。然后到 target目录下 运行 生成的jar 文件就可以看到输出了。