Maven最主要命令: compile(编译), test(单元测试), package(代码打包), install(安装到本地repository库里,从而方便其他Maven项目使用). 从控制台可以看出执行test前会执行compile,执行package前会执行test,执行install前会执行package。
而在执行test的时候需要在pom.xml里面添加上:
<build>
<plugins>
<!-- 告诉maven支持java6 以上编译 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
如果没有加上面这句话, Maven不会支持compile命令, Maven默认是支持Java1.3的。
<!-- 默认打包jar不可直接运行, 因为带有main方法不会添加到manifest中,为了生成可执行jar,借助以下代码 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.zhuyibin.helloworld.Helloworld</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
上述例子中的,我含有Main的Class是com.zhuyibin. helloworld.Helloworld,install完成后,有一个original-helloworld-0.0.1-SNAPSHOT.jar文件,还得到了一个helloworld-0.0.1-SNAPSHOT.jar文件(可运行的jar,该jar的MANIFEST.MF里面就可以看到Main-Class的信息了)。现就,我们就可以通过java -jar helloworld-0.0.1-SNAPSHOT.jar命令运行程序。