Maven Effective POM 的概念

按照Maven 的设计设计思路。

所有的自定义的 POM 都要继承 Super POM, 这样就给我们带来了一个难题,在我们进行编译和部署的时候,我们不知道Maven 到底使用了一个怎么样的POM。

其实这个POM 被称为 Effective POM, 中文翻译为有效的POM。 这个POM 其实是多个POM 的组合,当然这其中少不了 Super POM了。

希望查看当前项目使用的有效的POM, 需要让 Maven 下载 help 插件。

命令格式如下:mvn help:effective-pom下面的输出内容为一个 Struts 项目程序和 Super POM 合并的结果。[code]D:\workdir\hawebs\dbook>mvn help:effective-pom
[INFO] Scanning for projects…
[INFO] Searching repository for plugin with prefix: ‘help’.
[INFO] artifact org.apache.maven.plugins:maven-help-plugin: checking for updates
from central
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-help-p
lugin/2.1.1/maven-help-plugin-2.1.1.pom

Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-help-p
lugin/2.1.1/maven-help-plugin-2.1.1.jar

[INFO] ------------------------------------------------------------------------
[INFO] Building Struts 2 Starter
[INFO] task-segment: [help:effective-pom] (aggregator-style)
[INFO] ------------------------------------------------------------------------
Downloading: http://repo1.maven.org/maven2/com/thoughtworks/xstream/xstream/1.3/
xstream-1.3.pom

Downloading: http://repo1.maven.org/maven2/com/thoughtworks/xstream/xstream-pare
nt/1.3/xstream-parent-1.3.pom

Downloading: http://repo1.maven.org/maven2/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.
pom

Downloading: http://repo1.maven.org/maven2/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.
jar
Downloading: http://repo1.maven.org/maven2/com/thoughtworks/xstream/xstream/1.3/
xstream-1.3.jar

[INFO] [help:effective-pom {execution: default-cli}]
[INFO]
Effective POMs, after inheritance, interpolation, and profiles are applied:

<?xml version="1.0" encoding="UTF-8"?>


4.0.0
net.hawebs
dbook
0.0.1-SNAPSHOT
war
Struts 2 Starter
Struts 2 Starter
http://www.myComp.com

D:\workdir\hawebs\dbook\src\main\java
src/main/scripts
D:\workdir\hawebs\dbook\src\test\java</testSourceDirect
ory>
D:\workdir\hawebs\dbook\target\classes
D:\workdir\hawebs\dbook\target\test-classes</testOutput
Directory>


resource-0
D:\workdir\hawebs\dbook\src\main\resources




resource-1
D:\workdir\hawebs\dbook\src\test\resources


D:\workdir\hawebs\dbook\target
dbook



maven-antrun-plugin
1.3


maven-assembly-plugin
2.2-beta-2


maven-clean-plugin
2.2


maven-compiler-plugin
2.0.2


maven-dependency-plugin
2.0


maven-deploy-plugin
2.4


maven-ear-plugin
2.3.1


maven-ejb-plugin
2.1


maven-install-plugin
2.2


maven-jar-plugin
2.2


maven-javadoc-plugin
2.5


maven-plugin-plugin
2.4.3


maven-rar-plugin
2.2


maven-release-plugin
2.0-beta-8


maven-resources-plugin
2.3


maven-site-plugin
2.0-beta-7


maven-source-plugin
2.0.4


maven-surefire-plugin
2.4.3


maven-war-plugin
2.1-alpha-2





maven-compiler-plugin
2.0.2

1.5
1.5



org.mortbay.jetty
maven-jetty-plugin
6.1.5

10



maven-help-plugin
2.1.1






false

central
Maven Repository Switchboard
http://repo1.maven.org/maven2





never


false

central
Maven Plugin Repository
http://repo1.maven.org/maven2




junit
junit
3.8.1
test


org.apache.struts
struts2-core
2.0.11.2


org.apache.struts
struts2-sitemesh-plugin
2.0.11.2


org.apache.struts
struts2-spring-plugin
2.0.11.2


javax.servlet
servlet-api
2.4
provided


javax.servlet
jsp-api
2.0
provided


commons-fileupload
commons-fileupload
1.1.1


uk.ltd.getahead
dwr
1.1-beta-3



D:\workdir\hawebs\dbook\target/site


<sonar.host.url>http://localhost:9000</sonar.host.url>
<sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
<sonar.jdbc.password>sonar</sonar.jdbc.password>
<sonar.jdbc.url>jdbc:mysql://localhost:3306/sonar?useUnicode=true&charac
terEncoding=utf8</sonar.jdbc.url>
<sonar.jdbc.username>sonar</sonar.jdbc.username>

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 13 seconds
[INFO] Finished at: Mon May 17 01:30:15 EDT 2010
[INFO] Final Memory: 6M/13M
[INFO] ------------------------------------------------------------------------
D:\workdir\hawebs\dbook>[/code]第一次使用的时候, Maven 会下载一些插件到本地仓库的。

[attach]997[/attach]