Maven 学习笔记

 

1. 在windows上安装Maven.
    设置环境变量:
        c:\users\jeffrey>set M2_HOME=C:\Apache-Maven-2.2.1
        c:\users\jeffrey>set PATH=%PATH%;%M2_HOME%\bin
       
2. Maven Help插件
    help:active-profiles : 列出当前构建中活动的Profile(项目的,用户的,全局的)
    help:effective-pom: 显示当前构件的实际pom,包含活动的profile
    help:effective-settings: 打印出项目的实际setting,包括从全局的setting和用户级别settings继承的配置
    help:describe:描述插件的属性。它不需要在项目目录下运行。但是你必须提供你想要描述插件的groupId和artifactId

3. 创建简单项目
    $mvn archetype:create -DgroupId=com.trendmicro.demo -DartifactId=simple -DpackageName=com.trendmicro
   
4. pom.xml文件是Maven项目中最基础的POM.
    --groupId,artifactId,packaging,version是Maven的坐标,他们唯一标识了项目。
   
5. 最简单的POM
    <project>
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.trendmicro.demo</groupId>
        <artifactId>simple-project</artifactId>
        <version>1</version>
    </project>
    验证项目是否有效,在pom.xml文件所在的目录执行命令$mvn help:effective-pom
   
6. 项目的版本号构成
    主版本.次版本.增量版本-限定版本(如: 1.0.0-beta-01,1.2.4-alpha-09)
    SNAPSHOT版本:表示项目正处于活动的开发状态,Maven会在安装或发布这个组件的时候将该符号展开为一个日期和时间值
    LATEST和RELEASE版本:LATEST是指某个特定构件最新的发布版或者快照版,最近被部署到某个特定仓库的构件。RELEASE是指仓库中最后的一个非快照版本。
   
7. 属性引用
    一个POM可以通过一对大括号和前面一个美元符号来包含对属性的引用。
    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysqlVersion}</version>
        </dependency>
    </dependencies>
    <properties>
        <mysqlVersion>(5.1,)</mysqlVersion>
    </properties>
   
8. 项目依赖
    <project>
    ...
        <dependencies>
            <dependency>
                <groupId>org.codehaus.xfire</groupId>
                <artifactId>xfire-java5</artifactId>
                <version>1.2.5</version>
                <scope>compile</scope>
            </dependency>
            ...
        </dependencies>
    ...
    </project>
    依赖范围:
        compile(编译范围):编译范围依赖在所有的classpath中可用,同时它们也会被打包
        provided(以提供范围):provided依赖只有在当JDK或者一个容器已提供该依赖之后才使用。它们不是传递性的,也不会被打包。
        runtime(运行时范围):runtime依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如,你可能在编译的时候只需要JDBC API JAR,而只有在运行的时候才需要JDBC驱动实现。
        test(测试范围):test范围依赖 在一般的 编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用。
        system(系统范围):system范围依赖与provided类似,但是你必须显式的提供一个对于本地系统中JAR文件的路径。这么做是为了允许基于本地对象编译,而这些对象是系统类库的一部分。这样的构件应该是一直可用的,
            Maven也不会在仓库中去寻找它。如果你将一个依赖范围设置成系统范围,你必须同时提供一个systemPath元素。注意该范围是不推荐使用的(你应该一直尽量去从公共或定制的Maven仓库中引用依赖)。
    可选依赖:
        在POM中用<option>true</option>表示。编译这个项目的时候你需要两个依赖类库,但是你不希望在使用你类库的项目中,这两个依赖类库同时作为传递性运行时依赖出现。
    依赖版本界限:
        (,)不包含量词。[,]包含量词 如:
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>[3.8,4.0)</version>
            <scope>test</scope>
        </dependency>
    依赖管理:
        Maven在dependencyManagement元素中为你提供了一种方式来统一依赖版本号。你经常会在一个组织或者项目的最顶层的父POM中看到dependencyManagement元素。
        如定义MySQL-Driver,子项目没有显式的列出mysql-connector-java依赖的版本。由于这个依赖在顶层POM的dependencyManagement元素中定义了,该版本号就会传播到所有子项目的mysql-connector-java依赖中。
            注意如果子项目定义了一个版本,它将覆盖顶层POM的dependencyManagement元素中的版本。那就是:只有在子项目没有直接声明一个版本的时候,dependencyManagement定义的版本才会被使用.

9. Maven坐标详解
    groupId:一个归类了一组相关构件。组定义符基本上类似于一个java包名。
    artifactId:是项目的主要定义符。当你生成一个构件,这个构件将由artifactId命名。当你引用一个项目,你就需要使用artifactId来引用它。artifactId和groupId的组合必须是唯一的。
    versionId:当一个构件发布的时候,它是使用一个版本号发布的。该版本号是一个数字定义。
    classifier:(最少使用的):如果你要发布同样的代码,但是由于技术原因需要生成两个单独的构件,你就要使用一个分类器。例如,你想要构建两个单独的构件成jar,一个使用java 1.4编译器,另一个使用java 1.6编译器。
   
10. Maven Surefire插件是负责运行单元测试的插件。

11. 如果想跳过整个测试后进行打包
    $mvn install -Dmaven.test.skip=true

12. 通过Maven Profiles实现可移植性
    Maven中的profile是一组可选的配置,可以用来设置或者覆盖默认值。有了profile,你就可以为不同的环境定制构建。profile可以在pom.xml中配置,并给定一个id。然后你就可以在运行Maven的时候使用的命令告诉Maven运行特定profile中的目标。以下pom.xml使用production profile覆盖了默认的Compiler插件设置。
    <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>
        <groupId>org.sonatype.mavenbook</groupId>
        <artifactId>simple</artifactId>
        <packaging>jar</packaging>
        <version>1.0-SNAPSHOT</version>
        <name>simple</name>
        <url>http://maven.apache.org</url>
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>3.8.1</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
        <profiles>#
            <profile>
                <id>production</id>#
                <build>#
                    <plugins>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-compiler-plugin</artifactId>
                            <configuration>
                            <debug>false</debug>#
                            <optimize>true</optimize>
                            </configuration>
                        </plugin>
                    </plugins>
                </build>
            </profile>
        </profiles>
    </project>
    激活profile配置
    <profiles>
        <profile>
            <id>jdk16</id>
            <activation>#
            <jdk>1.6</jdk>
            </activation>
            <modules>#
                <module>simple-script</module>
            </modules>
        </profile>
    </profiles>

13. 使用Maven构建项目站点
    $mvn site:run




   
   
   
   
   
   
   
   
   
   
   

潮汐研究作为海洋科学的关键分支,融合了物理海洋学、地理信息系统及水利工程等多领域知识。TMD2.05.zip是一套基于MATLAB环境开发的潮汐专用分析工具集,为科研人员与工程实践者提供系统化的潮汐建模与计算支持。该工具箱通过模块化设计实现了两大核心功能: 在交互界面设计方面,工具箱构建了图形化操作环境,有效降低了非专业用户的操作门槛。通过预设参数输入模块(涵盖地理坐标、时间序列、测站数据等),用户可自主配置模型运行条件。界面集成数据加载、参数调整、可视化呈现及流程控制等标准化组件,将复杂的数值运算过程转化为可交互的操作流程。 在潮汐预测模块中,工具箱整合了谐波分解法与潮流要素解析法等数学模型。这些算法能够解构潮汐观测数据,识别关键影响要素(包括K1、O1、M2等核心分潮),并生成不同时间尺度的潮汐预报。基于这些模型,研究者可精准推算特定海域的潮位变化周期与振幅特征,为海洋工程建设、港湾规划设计及海洋生态研究提供定量依据。 该工具集在实践中的应用方向包括: - **潮汐动力解析**:通过多站点观测数据比对,揭示区域主导潮汐成分的时空分布规律 - **数值模型构建**:基于历史观测序列建立潮汐动力学模型,实现潮汐现象的数字化重构与预测 - **工程影响量化**:在海岸开发项目中评估人工构筑物对自然潮汐节律的扰动效应 - **极端事件模拟**:建立风暴潮与天文潮耦合模型,提升海洋灾害预警的时空精度 工具箱以"TMD"为主程序包,内含完整的函数库与示例脚本。用户部署后可通过MATLAB平台调用相关模块,参照技术文档完成全流程操作。这套工具集将专业计算能力与人性化操作界面有机结合,形成了从数据输入到成果输出的完整研究链条,显著提升了潮汐研究的工程适用性与科研效率。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值