如何用Maven建立Java应用程序

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入

 现在我们已经为建立项目做好准备。记得Maven的目的是将artifact安装到贮藏库中,因此如果我们要它那样做,它会运行所有必要的步骤。

$ mvn install

 现在Maven要下载许多内容,因为它要从中央贮藏库提取所有插件和必要的artifact。但是,我们还遗漏了一个artifact――DWR artifact。Maven最终将会出错,并显示下面这段内容丰富的错误信息:

[INFO] —————————————————————

[ERROR] BUILD ERROR

[INFO] —————————————————————

[INFO] Failed to resolve artifact.

Missing:

———-

1) dwr:dwr:jar:2.0M3

Try downloading the file manually from the project web site.

Then, install it using the command:

mvn install:install-file -DgroupId=dwr -DartifactId=dwr

-Dversion=2.0M3 -Dpackaging=jar -Dfile=/path/to/file

Path to dependency:

1) uk.builder:todotasks:war:2.0-SNAPSHOT

2) dwr:dwr:jar:2.0M3

———-

1 required artifact is missing.

 因此我们需要下载DWR2.0M3并把它安装到贮藏库中。DWR主网站上没有DWR2.0M3,你可以访问Java.net并在那里下载dwr.jar文件,然后运行Maven建议的命令。现在我们可以再试着运行安装。

$ mvn install

 然后会有更多下载,代码编译、单元测试运行、网络应用程序装配、通过它建立的war文件和安装到本地Maven贮藏库的war文件。所有这些工作的结果被存放到新建的目标目录中。当然,我们希望现在就运行应用程序。这时就要用到cargo插件。在默认情况下,cargo会下载并安装内置的Jetty 5.x网络服务器,并运行主war文件。要实现这一点,我们调用cargo的start goal。

$ mvn cargo:start

接着再下载所需的artifact,最终以下列的信息结束:

[INFO] [beddedLocalContainer] Jetty 5.x Embedded started on port [8080]

[INFO] Press Ctrl-C to stop the container…

 打开网络浏览器并访问http://localhost:8080/todotasks/,你会看到todotasks网络应用程序正在运行。

 我们实际上并没有写太多pom.xml文件,但已经有一个建立过程带我们完成基本的生命周期。如果你查看目标目录,你还会发现一个surefire-reports目录,里面有所有运行单元测试的报告。这不是你唯一能够生成的内容,试一下Maven的site goal:

$ mvn site

 这生成了一个基于项目的网站模板,存储在target/site中。如果你打开浏览器并查看那里的indext.html文件,你就会看到它。如果你见过许多Apache项目,很明显这是一个熟悉的布局。在我们的例子中,除了依赖页面外,我们没有建立许多页面,但它足以说明Maven能够帮助管理各种过程。

代码有何变化?

 由于我们要建立一个纯粹的网络应用程序,代码会有相当大的变化。Swing UI类、Main.java和Controller.java文件都不复存在。现在,删除那些内容留下一个问题:Tasks对象从何而来?TasksFactory现在增加了一个方法:

private static Tasks currentTasks;

public static Tasks getTasks()

{

if(currentTasks==null)

{

try {

currentTasks=createTasks(TasksType.JDBM);

} catch (IOException ex) {

ex.printStackTrace();

}

}

return currentTasks;

}

[1][2][3][4]

并且为之实践了关怀和付出的善举。对于我性情中的易感和怨薄,

如何用Maven建立Java应用程序

相关文章:

你感兴趣的文章:

标签云: