• 2.5.如何创建JAR以及把它安装到本地库中?


    maven如何创建JAR以及把它安装到本地库中_我心飞扬_百度空间

    maven如何创建JAR以及把它安装到本地库中
    2008年02月26日 星期二 10:39

    2.5.如何创建JAR以及把它安装到本地库中?

    执行以下命令:

    mvn package

    如果你看以下项目的POM,你可以注意到packaging元素被设置为jar。这让maven知道从以上命令产生一个jar文件。在${basedir}/target目录下,产生了一个jar文件。

    现在,你想将产生的jar文件安装到你的本地库中(~/.m2/repository是默认的位置)。想了解库的更多信息,请参考《库介绍》。执行以下命令,就能安装到本地库:

    mvn install

    执行过程中会产生如下输出:

    [INFO] ----------------------------------------------------------------------------

    [INFO] Building Maven Quick Start Archetype

    [INFO]    task-segment: [install]

    [INFO] ----------------------------------------------------------------------------

    [INFO] [resources:resources]

    [INFO] [compiler:compile]

    Compiling 1 source file to <dir>/my-app/target/classes

    [INFO] [resources:testResources]

    [INFO] [compiler:testCompile]

    Compiling 1 source file to <dir>/my-app/target/test-classes

    [INFO] [surefire:test]

    [INFO] Setting reports dir: <dir>/my-app/target/surefire-reports

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

    T E S T S

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

    [surefire] Running com.mycompany.app.AppTest

    [surefire] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.001 sec

    Results :

    [surefire] Tests run: 1, Failures: 0, Errors: 0

    [INFO] [jar:jar]

    [INFO] Building jar: <dir>/my-app/target/my-app-1.0-SNAPSHOT.jar

    [INFO] [install:install]

    [INFO] Installing <dir>/my-app/target/my-app-1.0-SNAPSHOT.jar to <local-repository>/com/mycompany/app/my-app/1.0-SNAPSHOT/my-app-1.0-SNAPSHOT.jar

    [INFO] ----------------------------------------------------------------------------

    [INFO] BUILD SUCCESSFUL

    [INFO] ----------------------------------------------------------------------------

    [INFO] Total time: 5 seconds

    [INFO] Finished at: Tue Oct 04 13:20:32 GMT-05:00 2005

    [INFO] Final Memory: 3M/8M

    [INFO] ----------------------------------------------------------------------------

    注意执行测试的surefire插件,它会按命名规则查找所有的测试文件,默认情况下,测试文件包括:

    Ø       **/*Test.java

    Ø       **/Test*.java

    Ø       **/*TestCase.jave

    默认情况下,被排除的:

    Ø       **/Abstract*Test.java

    Ø       **/Abstract*TestCase.jave

    到目前为止,已经经历了安装、构建、测试、打包、安装典型的maven项目等步骤。这可能是大多数项目使用maven需要经历的步骤,而驱动的项目模型文件只有18行内容,对比典型的build文件,它的行数比pom多的多。

    不需任何附加工作maven依靠此POM就可以为你的项目产生一个网站,你只须定制你的maven网站,如果时间紧迫,你只须执行以下命令:

    mvn site

    还有许多goals可以执行,比如

    mvn clean

    此命令删除target目录。

    可能你需要为你的项目产生一个IntelliJ IDEA 描述符,执行以下命令:

    mvn idea:idea

    2.6.如何使用插件?

    Maven 1.0用户注意:在Maven 1.0中,你可能必须加入一些譬如preGoal到maven.xml中,以及project.properties的一些入口中。这里有些不同,比如, 我们配置java编译器,以允许编译jdk 5.0的源码,这只要简单的在你的POM中加入:

    .

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

    .

    .

    maven2.0中,所有的插件看起来更像依赖项,并且某些方面确实就是依赖项。这个插件(包含特定的版本,如果指定的话,否则使用最新版本)将被自动下载并使用。

    Configuration元素用来对编译插件的每个goal提供参数。具体请参考《插件列表》、《构建生命周期介绍》。

    2.7.如何在jar文件中加入资源?

    在示例应用程序中,增加目录${basedir}/src/main/resources,我们把资源文件放入此目录。任何在${basedir}/src/main/resources目录中的文件和目录都将被打包到jar文件中。

    my-app

    |-- pom.xml

    `-- src

        |-- main

        |   |-- java

        |   |   `-- com

        |   |       `-- mycompany

        |   |           `-- app

        |   |               `-- App.java

        |   `-- resources

        |       `-- META-INF

        |           `-- application.properties

        `-- test

            `-- java

                `-- com

                    `-- mycompany

                        `-- app

                            `-- AppTest.java

    在这个例子中,我们在${basedir}/src/main/resources目录下放了一个META-INF目录并在META-INF目录中放了一个application.properties文件。如果你将jar文件解压,可以看到以下内容:

    |-- META-INF

    |   |-- MANIFEST.MF

    |   |-- application.properties

    |   `-- maven

    |       `-- com.mycompany.app

    |           `-- my-app

    |               |-- pom.properties

    |               `-- pom.xml

    `-- com

        `-- mycompany

            `-- app

                `-- App.class

    就像你看到的那样,${basedir}/src /main/resources中的内容在jar文件的起始位置,我们的application.properties文件在META-INF目录下。同 时,一些其他文件如META-INF/MANIFEST.MF,以及pom.xml和pom.properties文件也在其中,对于maven产生的 jar文件来说,这是maven的标准行为。你可以自行创建自己的manifest,不过如果你不指定,maven会产生一个默认的。由于pom.xml 和pom.properties文件都被打包到jar文件中,所以maven产生的产品都是自描述的,一个简单的应用就是获得应用程序版本。打开POM文 件可能需要一些maven的工具,但打开属性文件可以使用标准的java API来做到,属性文件pom.properties如下所示:

    #Generated by Maven

    #Tue Oct 04 15:43:21 GMT-05:00 2005

    version=1.0-SNAPSHOT

    groupId=com.mycompany.app

    artifactId=my-app

    为了单元测试,可能需要把资源加入到classpath,你可以遵照同样的模式:

    my-app

    |-- pom.xml

    `-- src

        |-- main

        |   |-- java

        |   |   `-- com

        |   |       `-- mycompany

        |   |           `-- app

        |   |               `-- App.java

        |   `-- resources

        |       `-- META-INF

        |           |-- application.properties

        `-- test

            |-- java

            |   `-- com

            |       `-- mycompany

            |           `-- app

            |               `-- AppTest.java

            `-- resources

                `-- test.properties

    那么在测试代码中,只须使用如下代码就可访问这些资源:

    ...

    // Retrieve resource

    InputStream is = getClass().getResourceAsStream( "/test.properties" );

    // Do something with the resource

  • 相关阅读:
    java.lang.ArrayIndexOutOfBoundsException异常分析及解决
    Android_开发片段(Part 2)
    保存错误日志回传服务器之回传错误“信息文件”
    node.js
    拼接json
    CommonJS / Node.js/ Vue学习资料
    合并PDF
    java 多线程
    linux 运行jar包
    mvn 命令
  • 原文地址:https://www.cnblogs.com/lexus/p/2394179.html
Copyright © 2020-2023  润新知