maven学习笔记

来源:互联网 发布:淘宝客服工作规划 编辑:程序博客网 时间:2024/05/17 01:53

[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>