`
Mr.TianShu
  • 浏览: 29330 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

一点Maven

阅读更多

[code="java"]

http://maven.apache.org/
http://www.cnblogs.com/dcba1112/archive/2011/05/01/2033805.html

http://blog.csdn.net/zzq900503/article/details/41043681

------------------------------------------------------------------------
M2_HOME
F:\OpenSource\Apache-maven\apache-maven-3.3.9\apache-maven-3.3.9-bin
classpth:
%M2_HOME%/bin;

修改本地库存放位置
conf\settings.xml
<localRepository>F:/00.Maven-Repository/</localRepository>

设置eclipse ->maven安装位置及配置文件位置

>mvn help:system

生成Java项目
>mvn archetype:generate -DinteractiveMode=false -DgroupId=org.fkjava -DartifactId=mavenQs -Dpackage=org.fkjava.mavenqs

1.生成WEB项目
>mvn archetype:generate -DgroupId=org.crazyit -DartifactId=Struts2qs -Dpackage=org.crazyit.struts2qs -DarchetypeArtifactId=maven-archetype-webapp

2.pom.xml 添加依赖
<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>2.3.16.3</version>
</dependency>

3.执行:mvn package



-----------------------------------------------------------------------------
导出依赖树:mvn dependency:tree  >  tree.txt

-----------------------------------------------------------------------------
mvn  -v  类似于 javac -version  或者 git --version

在linux上使用maven也需要像使用java一样设置环境变量 这是
export M2_HOME     = /?
export PATH = $PATH:$M2_HOME/bin
export MAVEN_OPTS = -Xms256m -Xmx512m


关于myeclipse中的内嵌maven的替换.路径是  Windows-->Preferences-->Maven-->右边点击add进行替换


没错,Maven不管下没下成功,都会有一个.lastupdate文件,一旦出现了这个文件,而你指定远程仓库的方式是mirror,
而不是profile里的repository,那么Maven默认不会去更新这个文件,个人以为Maven的这个设定很愚蠢。



------------------------------------一般常用命令----------------------------------------
mvn  help:system 自动在本用户下创建   ~/.m2/repository
mvn clean compile     清理编译
mvn clean test  清理测试
mvn clean package 清理打包
mvn clean install  清理将打包好的jar存入 本地仓库  注意是本地仓库
mvn archetype:generate 使用Archetype生成项目骨架
mvn clean deploy  根据pom中的配置信息将项目发布到远程仓库中
------------------------------------一般常用命令----------------------------------------


---------------------------------maven目录结构----------------------------------------
src/main/java :正式内容包路径
src/mian/resources :正式的配置文件路径
src/test/java :测试包路径
src/test/resources :测试的配置文件路径
src/main/webapp : war 资源目录
---------------------------------maven目录结构----------------------------------------



----------------------------优化依赖命令-----------------------------------------------
mvn dependency:list   显示所有已经解析的所有依赖
mvn dependency:tree  以目录树的形式展现依赖,  最高层为一层依赖 其次二层依赖 三层依赖....
mvn dependency:analyze  第一部分显示 已经使用但是未显示依赖的的  第二部分显示项目未使用的但是依赖的
----------------------------优化依赖命令-----------------------------------------------






如下是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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>  <!-- 固定值在MAVEN3中-->
  <groupId>cuiyaonan2000</groupId>  <!-- 所属于的组 -->
  <artifactId>maven</artifactId>  <!-- 唯一标示 -->
  <version>0.0.1-SNAPSHOT</version>  <!-- 版本号 -->
  <packaging>war</packaging>   <!-- 项目的打包方式,默认使用jar -->
  <name>maven项目模板的基本使用</name>
  <description> 这里的描述不知道是干吗用</description>
  
   <properties>
        <springframework.version>2.5.6</springframework.verson>
        <!-- 归类依赖 只需在  <version>${springframework.version}</version>  使用就可以了-->
   </properties>

<dependencies>
    <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.7</version>
          <!-- <type>依赖的类型,大部分情况下不必声明 默认是jar</type> -->
          <scope>test</scope>  <!--  依赖范围  传递性依赖 详见p63 -->
          <!-- <optional>标记依赖是否可选 不明白 该处的值是 true 和 false 详见p66</optional> -->
          <!--
                <exclusions>
                    <exclusion>
                        排除传递性依赖 只需列出如下的2项就可以了
                        <groupId></groupId>
                        <artifactId></artifactId>
                    </exclusion>
                </exclusions>
          -->
    </dependency>
</dependencies>




<build>
    <plugins>
        <!-- 设置这个插件的对应Java版本,貌似是为了解决一个历史问题-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.5</source>
                <target>1.5</target>
            </configuration>
        </plugin>
        <!-- 如下使用UTF-8 处理资源文件 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <configuration>
                 <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>


<!--  配置远程版本仓库  -->
<repositories>
    <!-- 设置远程版本库  直接收发布版本 不接受快照版本-->
    <repository>
        <id>jboss</id>  <!-- 如果是用central 就会覆盖中央仓库 -->
        <name>JBoss Repository</name>
        <url>http://repository.jboss.com/maven2/</url>
        <release>
            <enabled>true</enabled>
            <!-- 如下的2个参数详见p83
            <updatePolicy>daily</updatePolicy> 
            <checksumPolicy>ignore</checksumPolicy>
            -->
        </release>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <layout>default</layout>
    </repository>
</repositories>



<!--  将该项目 发布到远程仓库中 -->
<distributionManagement>
    <repository>
        <id>proj-release</id>   <!--  这里的id是为了 跟setting.xml中的 username  和 userpassword 的id匹配,有的仓库需要权限账户-->   
        <name>Proj Release Repository</name>
        <url>http://192.168.89.130</url>
    </repository>
    <snapshotRepository>
        <id>proj-release</id>
        <name>Proj Release Repository</name>
        <url>http://192.168.89.130</url>
    </snapshotRepository>
</distributionManagement>

</build>
</project>

----------------------------------------------------
Maven突然网络故障后清理:*.lastUpdated


---------------------------------------------------


        14.当使用maven搜索,无结果并提示:Index downloads are disabled, search results may be incomplete.
            "Window" --> "Preferences" and choose Maven in the left side.
             Now you have to check the box "Download repository index updates on startup"
             If no "Search Results"
            "Window" ---> "Show View" ---> "Maven Repositories" ---> "Global Repositories"
            chose "central" click right and "Update Index"


---------------------------------------------
eclipse:maven
     运行Maven是报错:No goals have been specified for this build 
         pom.xml文件<build>标签后面加上<defaultGoal>compile</defaultGoal>即可 


-----------------------------------------------------------------------------
maven 多源文件
http://www.mojohaus.org/build-helper-maven-plugin/usage.html

    资源文件本身可以配置多个,配置完成以后右键项目,maven->update   
       
        <resources>
            <resource> <!-- 可以配置多个 -->
                <directory>src</directory>
            </resource>
        </resources>
       
-----------
    java源文件需要插件  build-helper-maven-plugin

    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.12</version>
        <executions>
            <execution>
                <id>add-source</id>
                <phase>generate-sources</phase>
                <goals>
                    <goal>add-source</goal>
                </goals>
                <configuration>
                    <sources>
                        <source>${basedir}/01_helloStruts2</source>
                        <!-- 我们可以通过在这里添加多个source节点,来添加任意多个源文件夹 -->
                    </sources>
                </configuration>
            </execution>
        </executions>
    </plugin>
     



----------------------------------------------------------------
解决 maven 插件报错
1.eclipse的安装目录下的plugins下的org.eclipse.m2e.lifecyclemapping.defaults_xxxxxx.jar   -   lifecycle-mapping-metadata.xml

添加如下
        <pluginExecution>
            <pluginExecutionFilter>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>aspectj-maven-plugin</artifactId>
            <versionRange>[1.3,)</versionRange>
                <goals>
                    <goal>compile</goal>
                </goals>
            </pluginExecutionFilter>
            <action>
                <ignore />
            </action>
        </pluginExecution>

2. Window-Perferences-Maven-Lifecycle Mapping  ,选择添加后的文件 lifecycle-mapping-metadata.xml



或者,添加这个标签(不建议)

 <pluginManagement>
        <plugins> </plugins>




 

[/code]

1
3
分享到:
评论
2 楼 string2020 2016-08-19  
http://blog.csdn.net/mn960mn/article/category/2300763
1 楼 hellotieye 2016-08-19  
这页面 布局 也是 醉啦…………

即使是 copy 的 也要弄的好一些,态度觉得一切

相关推荐

    Maven3.5~3.6.3各版本下载

    通常可以通过校验文件的MD5或SHA1哈希值来实现这一点,确保下载的文件没有被篡改或损坏。 4. **安装与配置**:解压缩下载的文件后,需要设置环境变量,以便操作系统能够识别到Maven的安装路径。此外,还需要配置`...

    maven入门到精通

    而 maven 的成功又一次验证了这一点,越来越多的项目开始使用 maven 。 基本原理 Maven 的基本原理很简单,采用远程仓库和本地仓库以及一个类似 build.xml 的 pom.xml ,将 pom.xml 中定义的 jar 文件从远程仓库...

    Maven入门学习.pdf

    这一点对于促进团队合作和项目部署的标准化尤其重要。Maven的命令行工具(如mvn clean install)使得构建过程变得简单明了,便于团队成员之间的协作和项目部署的自动化。 Maven的依赖管理是通过项目对象模型(POM)...

    Maven2 的新特性.7z

    Maven 无疑是相当成功的,这一点从越来越多的开源项目开始使用 Maven 就可以看出。Maven 取得成功的原因很简单:在简化构建脚本的同时,功能并没有缩水,反而有所增强;提供汇集项目信息的工具,并以相当友好的方式...

    apache-maven3.6.rar

    Apache Maven 是一个强大的项目管理和构建工具,广泛应用于Java开发领域。Maven 3.6是其的一个稳定版本,提供了一套标准的项目对象模型(Project Object Model,POM),用于管理项目的构建、报告和依赖关系。这个...

    Maven使用教程

    为了实现这一点,Maven引入了一套独特的坐标系统,即groupId、artifactId、version和packaging,用于唯一标识每一个jar包。这些元素共同构成了jar包的坐标: - **groupId**:表示该包所属的组织或公司的域名反转...

    powermock maven respo

    PowerMock可以做到这一点。 - 静态初始化块:这些块在类加载时执行,可能包含不可控的初始化行为。PowerMock可以模拟这些块的执行。 2. **Maven**:Maven是一个项目管理工具,它定义了项目的构建过程、依赖管理和...

    Intellij IDEA中使用maven filter遇到的问题

    可以使用`${env.VARIABLE_NAME}`来引用环境变量,但需要确保Maven插件支持这一点。 - **IntelliJ IDEA配置**:IDE的配置也可能影响到Maven过滤。在IntelliJ IDEA中,确保Maven项目的“资源过滤”选项已启用。这可以...

    idea使用maven创建的web项目

    【标题】:“idea使用maven创建的web项目” 在Java开发中,IntelliJ IDEA(简称Idea)作为一款强大的集成开发环境,结合Maven构建工具,能够帮助开发者高效地管理项目的依赖、构建和部署。Maven是一个项目管理和...

    Maven与Nexus配置.pdf

    这一点需要特别注意,以防混淆。 Maven部分: 2.1 Maven安装:首先从官方网站下载Maven的安装包,然后解压至指定目录(例如/opt)。随后,需要在系统的环境变量中设置Maven的安装路径,并注销登录使设置生效。安装...

    Scala+maven安装方法.docx

    往后就是常规的 maven 创建,完成之后,因为要到远程 Maven 仓库加载很多 jar 包,所以可能会耗费一点时间:最后项目结构如下: 运行 App.scala: 五、总结 通过以上步骤,我们可以成功地安装 Scala+maven 环境,...

    Maven The Definitive Guide

    - 它通过提供统一的标准生命周期、一组构建规则以及最佳实践集合来实现这一点。 - **1.2 Convention Over Configuration(约定优于配置)** - Maven 的核心理念之一是约定优于配置,这意味着开发者无需显式指定每...

    maven打包源码

    `maven-source-plugin`的执行可以在这些阶段中的任意一点触发,具体取决于你的配置。 - **自定义源码包名称**:除了基本的源码打包功能外,`maven-source-plugin`还允许你自定义生成的源码包的名称,这对于大型项目...

    Maven快速入门

    我自己觉得,Maven的核心功能便是合理叙述项目间的依赖关系,通俗点讲,就是通过pom.xml文件的配置获取jar包,而不用手动去添加jar包,而这里pom.xml文件对于学了一点maven的人来说,就有些熟悉了,怎么通过pom.xml...

    build-helper-maven-plugin-0.15.0

    `add-source`目标可以实现这一点,让Maven能够包含这些额外的源代码。 2. **添加测试源代码目录**:类似地,`add-test-source`目标可以用来添加额外的测试源代码目录,这对于模块化或者多层架构的项目尤其有用。 3...

    Maven实战最清楚版

    ### Maven实战最清楚版知识点概览 #### 1. Maven简介 ...- **8.5 约定优于配置**:Maven遵循“约定优于配置”的原则,如何利用这一点简化项目配置。 - **8.5 小结**:总结Maven的聚合与继承功能。

    一套SSM做项目用的Maven依赖

    做基于maven的SSM开发用这个就好了,不用到处找依赖了,完全免费,建议配置阿里云的maven镜像,会快一点

    springboot_jsp_maven(war+jar).rar

    而"亮点是不仅可以war包方式运行,还可以可执行jar包方式运行",这一点揭示了Spring Boot的一个核心特性——内嵌式Servlet容器,如Tomcat。通常,Spring Boot应用可以被打包为可执行的jar,其中包含了运行应用所需的...

Global site tag (gtag.js) - Google Analytics