zoukankan      html  css  js  c++  java
  • maven导出runnable jar

    结论:不要使用export导出maven的工程,而是使用assemable plugin。

    1 一个标准的java工程导成runnable jar

    1.1 首先需要在工程里对应的入口类,执行一次main方法,从而让eclispe记录lanuncher。否则在导出jar的时候,找不到launch。下面是main执行完后,在相应的Java Application里面配置launch的名称等。

    1.2 选择export | runnable JAR file |   选中工程对应的launch, 导出jar,依赖的jar导出策略(通常选2)

    1.3,导出的工程结构最简单的是将配置文件放到src目录下,这样导出后就直接位于classpath。如果放在了不在/src的其它目录下,需要在将该目录添加为src目录,这样编译之后,里面的文件才能位于classpath.

    2.maven导出runnable jar

    2.1 maven错误的通过export导出runnable jar.

    如果maven工程也使用export jar,导出后会发现main/resources/*.*都不会位于classpath下。这与标准的java工程在指定源目录之后,编译的内容会位于classpath不同。所以直接使用maven的插件assemble在compile之后,导出jar。

    验证1.

    验证2: export确实可以把maven依赖的dependency导出。Libraries里面显示指定依赖的jar。

    验证3:导出的jar的结构。可以看到应用程序读取的配置文件都位于了classpath:resouces/file而不是classpath:file。

    2.2 maven正确的导出runnable jar 

    2.2.1在pom.xml里面添加如下配置

                    <plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
    <archive>
    <manifest>
    <mainClass>com.daodao.tool.migrate.App</mainClass>
    </manifest>
    </archive>
    <descriptorRefs>
    <descriptorRef>jar-with-dependencies</descriptorRef>
    </descriptorRefs>
    </configuration>
    </plugin>


    2.2.2 新建一个goal:clean compile assembly:single, 注意,如果命令行执行,需要前面加mvn。

    2.2.3. 将会严格的按照pom.xml里面的依赖打成jar。包括exlude的jar也会剔除。

    附:m2eclipse中如何判断jar冲突并排除。

    右侧的Resolved Dependency就是分析依赖后的最终依赖的jar。发现spring-beans,spring-core使用的是spring2.0.6的版本。与spring2.5.6冲突。(myeclipse的工具可以图形化这些冲突并标记,更加方便。)

     此时可以右健这二个jar选中Exclude  Maven Artificat .....即可修改相应的pom.xml。

     
     
     
     
  • 相关阅读:
    牛客网2017年校招全国统一模拟笔试(第三场)编程题集合
    侯捷STL学习(六)--深入list && Iterator traits
    侯捷STL学习(五)--allocator和容器之间的实现关系
    侯捷STL学习(四)--OOP-GP/操作符重载-泛化特化
    侯捷STL学习(三)--分配器测试
    侯捷STL学习(二)--序列容器测试
    牛客网2017年校招全国统一模拟笔试(第一场)编程题集合
    数据库面试题(一)
    SQL基础理论题
    基本SQL练习题--选课经典例题
  • 原文地址:https://www.cnblogs.com/highriver/p/2421917.html
Copyright © 2011-2022 走看看