我们在创建项目时要学习的是如何使用 Maven 来创建一个 Java 应用程序。现在将学习如何构建和测试应用程序。

进入到 C:\MVN 目录我们准备创建来 java应用程序。打开 consumerBanking 文件夹。看到 pom.xml 文件并打开它,内容如下。

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.companyname.projectgroup</groupId>
<artifactId>project</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
</dependency>
</dependencies>
</project>

在这里,你可以看到 Maven 已经添加了 Junit 测试框架。默认情况下 Maven 增加了一个源文件 App.java,以及在前面的章节中讨论的一样,默认目录结构中也有一个测试文件:AppTest.java。

现在打开命令控制台,进入到 C:\MVN\consumerBanking 目录并执行以下命令 mvn 命令。

C:\MVN\consumerBanking>mvn clean package

Maven 将开始构建这个项目,如下所示:

[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building consumerBanking 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ consumerBanking ---
[INFO] Deleting C:\MVN\consumerBanking\target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ consumerBanking ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources,i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory C:\MVN\consumerBanking\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ consumerBanking ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 1 source file to C:\MVN\consumerBanking\target\classes
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ consumerBanking ---
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources,
i.e. build is platform dependent!
[INFO] skip non existing resourceDirectory C:\MVN\consumerBanking\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ consumerBanking ---
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. b
uild is platform dependent!
[INFO] Compiling 1 source file to C:\MVN\consumerBanking\target\test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ consumerBanking ---
[INFO] Surefire report directory: C:\MVN\consumerBanking\target\surefire-reports -------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.companyname.bank.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.063 sec Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ consumerBanking ---
[INFO] Building jar: C:\MVN\consumerBanking\target\consumerBanking-1.0-SNAPSHOT.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 14.406 s
[INFO] Finished at: 2016-09-27T17:58:06+05:30
[INFO] Final Memory: 14M/247M
[INFO] ------------------------------------------------------------------------

现在我们已经建立项目,并创建生成最终 jar 文件,以下是主要一些概念介绍:

  • 我们给 maven 两个目标,首先要清理目标目录(clean),然后打包项目生成 JAR(包)输出 ;

  • 打包的 JAR 可在 consumerBanking\target 文件夹找到文件:consumerBanking-1.0-SNAPSHOT.jar ;

  • 测试报告在 consumerBanking\target\surefire-reports 文件夹中;

  • Maven 编译的源代码文件,然后测试源代码文件;

  • 然后 Maven 运行测试用例;

  • 最后 Maven 创建包;

现在打开命令控制台,进入到 C:\MVN\consumerBanking\target\classes 目录,然后执行以下 java 命令。

C:\MVN\consumerBanking\target\classes>java com.companyname.bank.App

会看到结果,如下所示:

Hello World!

添加 Java 源文件

让我们来看看如何在项目中添加额外的 Java 文件。打开 C:\MVN\consumerBanking\src\main\java\com\companyname\bank 文件夹,在其中创建一个 Util 类,其对应文件为:Util.java 文件。

package com.companyname.bank;

public class Util
{
public static void printMessage(String message){
System.out.println(message);
}
}

更新 App 类在其中调用(使用) Util 类。如下代码所示:

package com.companyname.bank;

/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
Util.printMessage("Hello World!");
}
}

现在打开命令控制台,进入到 C:\MVN\consumerBanking 目录并执行以下命令 mvn 命令。

C:\MVN\consumerBanking>mvn clean compile

Maven 构建成功后,请再进入 C:\MVN\consumerBanking\target\classes  目录,然后执行以下 java 命令。

C:\MVN\consumerBanking\target\classes>java -cp com.companyname.bank.App

看到结果如下所示:

Hello World!

使用Maven构建和测试Java项目的更多相关文章

  1. 三、使用Maven构建简单的java项目

    前边,我刚搭建了Maven环境,还有给大家推荐了学习资源,这个小节,我们来就来,,简单的玩玩maven. 1.所需工具: 1.Eclipse     2.apache-maven-3.3.9   3. ...

  2. 使用Maven构建RichFaces 4.x项目

    使用Maven构建RichFaces 4.x项目 目录 开始之前 第一步 - 创建Maven项目 第二布 - 添加依赖文件 第三步 - 配置RichFaces 第四步 - 创建显示页面 开始之前 本文 ...

  3. 如何用Maven创建一个普通Java项目

    一下内容包括:用Maven创建一个普通Java项目,并把该项目转成IDEA项目,导入到IDEA,最后把这个项目打包成一个jar文件. 有时候运行mvn命令失败,重复运行几次就OK了,无解(可能因为网络 ...

  4. Maven构建真正的J2EE项目

    今天同事问起我眼下用Maven构建的多模块项目架构和曾经用Eclipse创建的Web项目的问题.以下将讲一下使用maven搭建多模块的J2ee项目,以及採用这样的方式搭建项目对日后项目的水平拆分和垂直 ...

  5. jenkins构建go及java项目

    jenkins构建go及java项目 转载请注明出处https://www.cnblogs.com/funnyzpc/p/14554017.html 写在前面 jenkins作为java的好基友,经历 ...

  6. Maven学习(2) - Maven构建多模块Java工程

    概述 项目开发时,通常会将项目分为多个模块进行开发,本文讨论如何用Maven构建多模块的Java工程. 软件环境 Java:1.6.0_26 Maven:3.1.1 OS:WindowXP SP3 项 ...

  7. Gradle入门(3):构建第一个Java项目

    Gradle插件通过引入特定领域的约定和任务来构建你的项目.Java插件是Gradle自身装载的一个插件.Java插件提供的基本功能远比源代码编译和打包多.它为你的项目建立了一个标准的项目布局,并确保 ...

  8. 使用maven构建基本的web项目结构

    由于当前公司在组织进行项目基本结构的整理,将以前通过eclipse/ ant 方式构建的项目向maven上迁移,于是便进行maven项目方面的调研. 对于maven项目,基本的结构已经在标准文件中: ...

  9. Ant构建与部署Java项目---入门

    原文地址:http://tech.it168.com/j/2007-11-09/200711091344781.shtml Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建 ...

随机推荐

  1. .NET 获得指定XML配置文件内容

    /// <summary> /// 获得指定XML文件内容 /// </summary> /// <param name="strPath">X ...

  2. c#,asp.net 开发 app 学习资料整理

    VS2015 Apache Cordova第一个Android和IOS应用 http://www.cnblogs.com/aehyok/p/4116410.html PhoneGap:免费开源的 HT ...

  3. (原创)用c++11实现简洁的ScopeGuard

    ScopeGuard的作用是确保资源面对异常时总能被成功释放,就算没有正常返回.惯用法让我们在构造函数里获取资源,当因为异常或者正常作用域结束,那么在析构函数里释放资源.总是能释放资源.如果没有异常抛 ...

  4. HBase写入性能及改造——multi-thread flush and compaction(续:详细测试数据)[转]

    转载:http://blog.csdn.net/kalaamong/article/details/7290192 接上文啊: 测试机性能 CPU 16* Intel(R) Xeon(R) CPU   ...

  5. mysql 通过echo的方式写入数据库 中文乱码解决方案

    echo "set names utf8;insert into xxx (path, sn, time, flag) values ('$wav', '$sn', '$secs', 'op ...

  6. LeetCode: Balanced Binary Tree 解题报告

    Balanced Binary Tree Given a binary tree, determine if it is height-balanced. For this problem, a he ...

  7. 《Android 编程权威指南》读书总结

    1.当一段代码被多次使用,可将这段代码封装成一个抽象类,以后再要用到该段代码时,直接extends(继承)这个抽象类. 2.SDK版本向后兼容,即在SDK发布后推出的Android版本都可以使用该SD ...

  8. MVC LinqToSql Json DbComparisonExpression 需要具有可比较类型的参数。

    需求是:使用post方式传入Controller一个id,然后返回给前台一个Json.突然就报了这个错误,折腾了俩小时, 发现是linq to sql 的语法错了

  9. Oracle 物理视图刷新报错ORA-00942

    原因:物化视图调用的主表没有主键,物化视图创建默认以主键创建(with primarykey),改为用with rowid创建即可.

  10. ADO对Excel对象进行连接时的 两种方法区别

    在通过ADO对Excel对象进行连接时(此时Excel则认为是一个数据源),需要配置对Excel数据源对应的连接串,这个连接串中包括了Provider信息(其实类似对数据库进行连接操作时,都需要指定连 ...