`

Maven插件使用记录

阅读更多

1.tomcat-maven-plugin

用途: 可将windows环境下开发的webapp部署到linux服务器上的tomcat下。

用法: http://jiessiedyh.iteye.com/blog/471066

 

2.maven-antrun-plugin

用途: 运行 Ant 任务。

实际应用:

1) 打包时包括hbm文件

用法: http://blog.csdn.net/symgdwyh/archive/2009/07/30/4393962.aspx

 

2) 启动H2数据库

用法:

pom.xml中配置片段:

	<profiles>
		<profile>
			<id>startdb</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-antrun-plugin</artifactId>
						<executions>
							<execution>
								<id>startdb</id>
								<phase>initialize</phase>
								<configuration>
									<tasks>
										<java classname="org.h2.tools.Console" classpathref="maven.plugin.classpath" fork="true" spawn="true">
										</java>
									</tasks>
								</configuration>
								<goals>
									<goal>run</goal>
								</goals>
							</execution>
						</executions>

						<dependencies>
							<dependency>
								<groupId>com.h2database</groupId>
								<artifactId>h2</artifactId>
								<version>${h2.version}</version>
							</dependency>
						</dependencies>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

  运行 mvn initialize -Pstartdb 即可

 

3.maven-source-plugin

用途: 打包源代码。

用法: http://blog.csdn.net/symgdwyh/archive/2009/08/04/4407945.aspx

 

4.findbugs-maven-plugin

用途: 检查代码。

用法:

pom.xml中配置片段: 

<reporting>
	<plugins>
		<!-- FindBugs插件 -->
		<plugin>
			<groupId>org.codehaus.mojo</groupId>
			<artifactId>findbugs-maven-plugin</artifactId>
			<version>2.0.1</version>
			<configuration>
				<effort>Max</effort>
				<threshold>Low</threshold>
				<xmlOutput>true</xmlOutput>
				<xmlOutputDirectory>target</xmlOutputDirectory>
				<findbugsXmlOutput>true</findbugsXmlOutput>
				<findbugsXmlOutputDirectory>target</findbugsXmlOutputDirectory>
			</configuration>
		</plugin>
	</plugins>
</reporting>

运行 mvn site 命令即可。

 

5. maven-compiler-plugin

用途: 编译源代码

用法: http://maven.apache.org/plugins/maven-compiler-plugin/usage.html

几个例子: http://maven.apache.org/plugins/maven-compiler-plugin/examples/

pom.xml中配置片段: 

<project>
  ...
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.0</version>
          <configuration>
            <!-- source,target默认值为1.5 -->
	    <source>1.5</source>
	    <target>1.5</target>
            <encoding>UTF-8</encoding>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  ...
</project>

 

6.maven-dependency-plugin

用途: copy依赖包

用法: http://maven.apache.org/plugins/maven-dependency-plugin/usage.html

几个例子: http://maven.apache.org/plugins/maven-dependency-plugin/examples/

pom.xml中配置片段: 

<project>
  ...
  <build>
      <plugins>
			<!-- 打包时将所依赖的jar包copy到指定路径下 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<version>2.6</version>
				<executions>
					<execution>
						<id>copy-dependencies</id>
						<phase>package</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<!-- 设置依赖包copy目的地,默认目的地为${project.build.directory}/dependency -->
							<outputDirectory>${project.build.directory}/dependency/jars</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>
       </plugins>
  </build>
  ...
</project>

 

7.maven-surefire-plugin

用途: 运行单元测试

默认情况下,maven-surefire-plugin会自动执行测试源码路径下所有符合下列命名规约的测试类:
**/Test*.java:任何子目录下以Test开头的Java类
**/*Test.java:任何子目录下以Test结尾的Java类
**/*TestCase.java:任何子目录下所有命名以TestCase结尾的Java类

用法: http://maven.apache.org/surefire/maven-surefire-plugin/usage.html

pom.xml中配置片段: 

<project>
  [...]
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.2</version>
	  <configuration>
		[...]
		<excludes>
			<exclude>a/b/c/XxxTest.java</exclude>
		</excludes>
	  </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  [...]
</project>

JUnit, TestNG  testcase 不能同时运行的解决办法

增加 execution 配置:

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-surefire-plugin</artifactId>
	<configuration>
		<!-- 加上下面这2段配置,则可以只运行JUnit testcase(下面的execution配置要去掉) -->
		<testNGArtifactName>none:none</testNGArtifactName>
		<properties>
			<property>
				<name>junit</name>
				<value>true</value>
			</property>
		</properties>
	</configuration>
	<executions>
		<!-- 加上下面这段execution,则可以同时运行JUnit and TestNG testcase -->
		<execution>
			<phase>test</phase>
			<goals>
				<goal>test</goal>
			</goals>
			<configuration>	
				<junitArtifactName>none:none</junitArtifactName>
				<testNGArtifactName>org.testng:testng</testNGArtifactName>
			</configuration>
		</execution>
	</executions>
</plugin>

 

8. cobertura-maven-plugin

用途: 单元测试覆盖率统计

用法: http://mojo.codehaus.org/cobertura-maven-plugin/usage.html

pom.xml中配置片段: 

<project>
  ...  
  <reporting>
    <plugins>
      ...
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <version>2.5.2</version>
      </plugin>
    </plugins>
  </reporting>
</project>
 单独运行: mvn cobertura:cobertura

运行完毕后,通过 target/site/cobertura/index.html 查看结果。

 

9. emma-maven-plugin

用途: 单元测试覆盖率统计

用法: http://mojo.codehaus.org/emma-maven-plugin/usage.html

pom.xml中配置片段: 

<project>
  ...
  <reporting>
    ...
    <plugins>
      ...
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>emma-maven-plugin</artifactId>
        <version>1.0-alpha-3</version>
      </plugin>
      ...
    </plugins>
    ...
  </reporting>
  ...
</project>
 单独运行: mvn emma:emma

运行完毕后,通过 target/site/emma/index.html 查看结果。

 

10. maven-assembly-plugin

用途: 打包发布包

用法: http://maven.apache.org/plugins/maven-assembly-plugin/usage.html

pom.xml中配置片段(创建可执行jar): 

<project>
  [...]
  <build>
    [...]
    <plugins>
      <plugin>
        <!-- NOTE: We don't need a groupId specification because the group is
             org.apache.maven.plugins ...which is assumed by default.
         -->
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.4</version>
        <configuration>
          <!-- 指定输出文件名 -->
          <finalName>${project.name}-${project.version}_all-in-one</finalName>
          <appendAssemblyId>false</appendAssemblyId>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
          <archive>
            <manifest>
             <mainClass>xxx.Xxx</mainClass>
            </manifest>
          </archive>
        </configuration>
          
        <executions>
          <execution>
            <id>make-assembly</id>
            <phase>package</phase><!-- 绑定到package生命周期阶段上 -->
            <goals>
             <goal>assembly</goal>
            </goals>
          </execution>
        </executions>
        [...]
</project>
运行: mvn assembly:assembly  或  mvn package

运行完毕后,target 下会生成结果。

 Maven Assembly插件介绍

使用maven插件对java工程进行打包

 

 

分享到:
评论

相关推荐

    svn_maven插件

    2. **M2E (Maven Integration for Eclipse)**:这是Eclipse官方推荐的Maven插件,它无缝集成Maven到Eclipse中,使得你可以直接在IDE内执行Maven命令,如`clean`, `install`, `test`等。同样,你可以在"Eclipse ...

    eclipse svn-maven插件

    Eclipse SVN Maven插件是Java开发环境中非常重要的一个工具,它整合了Eclipse IDE、Subversion(SVN)版本控制系统和Maven构建工具,为开发者提供了便捷的代码管理与项目构建功能。通过这个插件,你可以直接在...

    m2eclipse eclipse maven插件

    - **Maven插件集成**:可以直接在Eclipse中运行Maven插件,进行代码生成、测试报告生成等操作。 - **多模块项目支持**:方便管理包含多个子项目的大型项目,可以轻松地构建和调试整个项目结构。 **3. 安装与配置m2...

    maven.scm插件

    ### 四、与其他Maven插件的配合 Maven SCM插件经常与其他插件如`release-plugin`配合使用,自动完成版本升级、代码提交、创建标签等整个发布流程。例如,使用`mvn release:prepare`和`mvn release:perform`命令可以...

    maven工作使用的记录

    5. Maven插件:探讨Maven插件的工作原理,如何自定义插件配置,以及常见的插件如Surefire(用于单元测试)、Failsafe(用于集成测试)和Tomcat插件的使用。 6. 多模块项目:了解如何利用Maven的聚合和继承特性来管理...

    maven-plugin-logger:Maven插件Api委托记录器

    Maven插件记录器 一般特征 该库允许创建Maven插件,以将记录器实现的跟踪重定向到默认的Maven记录器。 易于使用,只需在您的应用程序中添加Maven依赖项以及与您的记录器实现相对应的依赖项 在中央Maven存储库中可用...

    Maven的IED插件

    Maven的IED插件是开发人员在使用Maven构建项目时常用的一个工具,它主要用于集成开发环境(Integrated Development Environment,简称IDE)与Maven之间的交互。这个插件的主要目的是提高开发效率,通过自动化的方式...

    maven&svn插件包

    Maven插件可以处理诸如编译、测试、打包、部署等各种任务。例如,maven-compiler-plugin用于Java源码的编译,maven-surefire-plugin负责运行单元测试,maven-jar-plugin用于创建JAR文件,maven-deploy-plugin则负责...

    maven学习记录

    ### Maven插件的使用 Maven插件是用来扩展Maven功能的工具。例如,可以通过`maven-compiler-plugin`来配置编译器版本,通过`maven-surefire-plugin`来运行单元测试。 ### 依赖范围 Maven中依赖的范围决定了依赖...

    findConflicts:冲突的Maven插件(查找Maven项目冲突的Maven插件)

    FindConflicts是一个maven插件。它可以找到你maven工程中各种冲突(jar冲突,类冲突,日志冲突,版本冲突)。我敢打赌,我们一定知道过日志冲突。我们都知道,java的日志包多种,象log4j,logback,slf4j,通用日志...

    svn-maven-andrion插件

    在Eclipse中,Maven插件如M2E(Maven Integration for Eclipse)将Maven的功能融入IDE,帮助开发者管理项目的依赖关系,自动化构建过程,生成项目文档等。通过Maven,开发者可以使用标准的POM(Project Object Model...

    Maven 使用入门.pdf

    ### Maven 使用入门详解 #### Maven 介绍与优势 Maven 是一款流行的 Java 项目管理和构建工具,它通过一套标准化的方法来简化项目的构建过程。Maven 的核心价值在于它能够简化项目构建过程,使得开发者能够更加...

    maven3.x全版本.zip

    Maven 使用一个项目对象模型(Project Object Model, POM),这个模型包含了项目的配置信息,如依赖、构建目标、插件等。Maven 通过解析 POM 文件,自动下载所需依赖,并执行构建任务。 本压缩包包含 Maven 的多个...

    使用Maven整合ssm

    Maven通过POM(项目对象模型)来描述项目,POM是一个XML文件(通常命名为pom.xml),包含了项目的配置信息,包括项目依赖、构建过程、插件配置等。配置Maven环境需要下载Maven安装包并设置环境变量,如`MAVEN_HOME`...

    maven3.6.1和3.6.3安装包

    4. **插件**: Maven通过插件机制扩展功能,如编译、测试、打包、部署等都由对应的插件实现。 5. **项目信息管理**: POM文件不仅包含依赖信息,还记录项目的基本信息,如作者、版本、描述等。 **使用Maven** 1. **...

    maven项目学习笔记记录

    **Maven项目学习笔记记录** 在软件开发领域,Maven是一个强大的项目管理和构建工具,尤其在Java开发中广泛使用。本笔记将深入探讨Maven的核心概念、主要功能以及实际应用场景,帮助你更好地理解和掌握这一重要工具...

    maven资源 apache-maven-3.3.9-bin.zip

    Maven通过使用Project Object Model (POM)文件来描述项目信息,包括依赖、构建配置、插件设置等。POM.xml是Maven项目的核心,它使得项目的配置可重用,提高了开发效率。 Maven的依赖管理功能非常强大。它会自动解决...

    maven3.0版本下载

    5. 其他文档和资源文件,如README和CHANGES,记录了版本变更和使用指南。 总的来说,Maven3.0是一个强大且成熟的构建工具,它的出现极大地推动了Java项目的标准化和自动化,而"apache-maven-3.0.5"这个压缩包正是...

    svn maven exp openExplorer adt egit 插件包

    通过Maven的POM(Project Object Model)文件,开发者可以方便地定义项目的构建过程、依赖关系和插件配置,极大地简化了项目构建和维护的工作。 3. **Eclipse (exp)**:Eclipse是一款开源的集成开发环境(IDE),...

    maven3.8.5压缩包

    - **lib**:包含Maven运行所需的各类库文件,包括JARs,这些库支持Maven的内部功能和插件执行。 4. **使用Maven进行项目构建** - `mvn clean`:清除目标目录,删除编译生成的文件。 - `mvn compile`:编译源代码...

Global site tag (gtag.js) - Google Analytics