[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure
E:\Workspaces\simple-weather\src\main\java\org\sonatype\mavenbook\weather\YahooP
arser.java:[36,19] generics are not supported in -source 1.3
(try -source 1.5 to enable generics)
Map<String,String> uris = new HashMap<String,String>();
则在pom.xml加上(用1.5的编译器)
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
创建Java项目:
mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch03 -DartifactId=simple -DpackageName=org.sonatype.mavenbook
查看帮助:
mvn help:describe -Dplugin=exec -Dfull
解析依赖命令:
mvn dependency:resolve
编译:
mvn compile
运行到测试:
mvn test
mvn install
没打包前(主程序的运行查看)运行:
mvn exec:java -Dexec.mainClass=org.sonatype.mavenbook.weather.Main
打包分发:
mvn install assembly:assembly
重新安装:
mvn clean install
打包后运行:
E:\Workspaces\simple-weather\target>java -cp simple-weather-1.0-jar-with-depende
ncies.jar org.sonatype.mavenbook.weather.Main
创建web项目:
mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch05 -DartifactId=simple-webapp -DpackageName=org.sonatype.mavenbook.ch05 -DarchetypeArtifactId=maven-archetype-webapp
Servlet包:
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-servlet_2.4_spec</artifactId>
<version>1.1.1</version>
<scope>provided</scope>
</dependency>
jsp自定义标签包:
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jsp_2.0_spec</artifactId>
<version>1.1</version>
<scope>provided</scope>
</dependency>
配置jetty
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
</plugin>
</plugins>
启动:
mvn jetty:run
如果你把这个命令行程序分发给其他人,你大概就需要
定制一个Maven项目分发一个 JAR 或者一个 ZIP 存档文件或者 TAR 压缩过的 GZIP 文件。 就要使用Maven Assembly 插件
Maven Assembly 插件是一个用来创建你应用程序特有分发包的插件。暂时使用预定义的 jarwith-dependencies 格式。
jar-with-dependencies 格式创建一个包含所有 simple-weather 项目的二进制代码以
及所有依赖解压出来的二进制代码的 JAR 文件。
mvn dependency:analyze
mvn dependency:tree
查看有效的pom
要运行Maven Help插件的effective-pom目
标,该插件已经之前在小节第 2.7 节 “使用Maven Help插件”中介绍。在pom.xml文
件所在的目录执行以下的命令以运行effective-pom目标:
6. 创建web项目。
普通的Java项目,如基础包等:
mvn archetype:create -DgroupId=com.yourcompany -DartifactId=myproject -DarchetypeArtifactId=maven-archetype-quickstart
普通的Web项目,如一个Web项目:
mvn archetype:create -DgroupId=com.yourcompany -DartifactId=myproject -DarchetypeArtifactId=maven-archetype-webapp
Appfuse中的Struts 2.0项目:
mvn archetype:create -DarchetypeGroupId=org.appfuse -DarchetypeArtifactId=appfuse-basic-struts -DremoteRepositories=http://static.appfuse.org/repository -DarchetypeVersion=2.0-m4-SNAPSHOT -DgroupId=com.mycompany -DartifactId=myproject
使用上述命令后,你可以很快捷地生成你想要的项目原型。接下来我们只需使用下面命令,生成IDEA的项目文件,然后打开就可以在IDEA下进行项目开发啦。
mvn idea:idea -DdownloadSources=true -DdownloadJavadocs=true -DjdkLevel=1.5
当pom.xml文件发生变化时,我们只需使用下面命令重新生成module文件即可,新生成的module文件会和原来module文件进行很好的合并,通常是依赖的package发生变化啦。
mvn idea:module
。simple-weather的父POM通过一个值为org.sonatype.mavenbook的groupId,一个值
为simple-parent的artifactId,以及一个值为1.0的version来定义。注意子模块中我们
不再需要重新定义groupId和version,它们都从父项目继承了
spring
org.hibernate:hibernate:3.2.5.ga
我们定义了一个对HIbernate版本3.2.5ga的依赖,但注意我们排除了Hibernate
的一个依赖。这么做是因为javax.transaction:javax依赖在公共Maven仓库中不
可用。此依赖正好是Sun依赖中的一个,不能免费在中央Maven仓库中提供。为了
避免烦人的信息告诉我们去下载非免费的依赖,我们简单的从Hibernate排除这
个依赖然后添加一个geronimo-jta_1.1_spec依赖。
org.apache.geronimo.specs:geronimo-jta_1.1_spec:1.1
就像Servlet和JSP API,Apache Geronimo项目也根据Apache许可证
友好的发布了一些认证过的企业级API。这意味着不管什么时候某个组
件告诉你它依赖于JDBC,JNDI,和JTA API,你都可以查一下groupId
为org.apache.geronimo.specs下的对应类库。
org.springframework:spring:2.0.7
<project.build.testSourceDirectory>src/test/java</project.build.testSourceDirectory>
====================
<build>
<directory>target</directory>
<outputDirectory>target/classes</outputDirectory>
<finalName>${project.artifactId}-${project.version}</finalName>
<testOutputDirectory>target/test-classes</testOutputDirectory>
<sourceDirectory>src/main/java</sourceDirectory>
<scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
<testSourceDirectory>src/test/java</testSourceDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
<testResources>
<testResource>
<directory>src/test/resources</directory>
</testResource>
</testResources>