maven的插件

1.插件的简介

<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>2.1.1</version>
				<executions>
					<execution>
						<id>bound-source</id>
						<phase>package</phase>
						<goals>
							<goal>jar-no-fork</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
</build>
 

Ps:上述为附带源码的插件

说明:<groupId>,<artifactId>,<version>含义同依赖类似,配置任务的id为attach-source(也可以不写),通过phase绑定在package上,执行目标goal是jar-no-fork,<phase>verify</phase>也可以不写,那么会绑定在package上。

2.maven的插件前缀

格式:groupid 的目标前缀:目标goal(相当于完整的写法:groupid:artifactid:version:goal)

说明:如果是maven的官方插件,那么可以省略groupid,会自动的默认的补全,例如maven的超级pom为maven为所有的核心插件设定了版本,所有项目都可以继承,所以用户不需要任何的配置,所以在使用核心插件的时候版本就已经确定了,假如用户的某个版本没有设定,而这个插件又不属于核心插件的范畴,maven就会去检查所有仓库中可用的版本,在maven遍历本地仓库和远程插件仓库之后,maven会解析为最新版的release版本。但是最好还是设定版本,避免潜在的不稳定性(maven3只能是release),建议加上版本。

Groupid:artifactid是一一对应的关系,根据目标前缀能找到相应的groupid以及artifactId,存储在仓库元数据中,maven在解析仓库元数据的时候会默认的将groupid解析为org.apche.maven.plugins和org/codehaus/mojo,具体可以查看org.apche.maven.plugins的仓库元数据如下http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-metadata.xml  当然也可以类上如上的方式在setting中设置的方式来添加相应的仓库元数据,配置如<pluginGroup>com.your.plugins</pluginGroup>(在</pluginGroups>添加),会搜寻在com/your/plugins/ maven-metadata.xml文件(写法如上),例如上述的mvn  dependency:list

备注:eclipse的maven 使用build..中较dos中输入少了mvn,如在eclipse的maven 使用build..输入的是dependency:list

3.常用插件

1)指定jdk为1.8,utf为1.8

<plugin>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-compiler-plugin</artifactId>
		<version>3.7.0</version>
		<configuration>
		<source>1.8</source>
		<target>1.8</target>
		<encoding>UTF-8</encoding>
		</configuration>
</plugin>
//也可以在setting中配置成全局的配置
<profile> 
		<id>jdk-1.8</id>  
		<activation>  
			<activeByDefault>true</activeByDefault>  
			<jdk>1.8</jdk>  
		</activation>  
		<properties>  
			<maven.compiler.source>1.8</maven.compiler.source>  
			<maven.compiler.target>1.8</maven.compiler.target>  
			<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>  
		</properties>  
</profile>  

 2)生成可执行的jar

<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
				<version>3.1.0</version>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>shade</goal>
						</goals>
						<configuration>
							<transformers>
								<transformer
									implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
									<mainClass>hello.hello</mainClass>
								</transformer>
							</transformers>
						</configuration>
					</execution>
				</executions>
			</plugin>

备注:执行在dos窗口使用 java  -jar   jar包的绝对地址,也可以使用java -classpath jar包的绝对地址,在没有使用上述插件的前提下,也可以模仿MANIFEST.MF中添加例如Main-Class。

3)其他插件:http://maven.apache.org/plugins/index.html  有说明和实例

posted @ 2018-08-06 20:50  fatale  阅读(194)  评论(0编辑  收藏  举报