通过maven 将java程序及其依赖打成可执行jar包

本地lib中的jar安装进maven库 或者 通过maven配置将该路径包含 先尝试第二种

maven配置路径包含

 <build>  
    <plugins>  
        <plugin>  
            <groupId>org.apache.maven.plugins</groupId>  
            <artifactId>maven-jar-plugin</artifactId>  
            <version>2.6</version>  
            <configuration>  
                <archive>  
                    <manifest>  
                        <addClasspath>true</addClasspath>  
                        <classpathPrefix>lib/</classpathPrefix>  
                        <mainClass>com.xxg.Main</mainClass>  
                    </manifest>  
                </archive>  
            </configuration>  
        </plugin>  
        <plugin>  
            <groupId>org.apache.maven.plugins</groupId>  
            <artifactId>maven-dependency-plugin</artifactId>  
            <version>2.10</version>  
            <executions>  
                <execution>  
                    <id>copy-dependencies</id>  
                    <phase>package</phase>  
                    <goals>  
                        <goal>copy-dependencies</goal>  
                    </goals>  
                    <configuration>  
                        <outputDirectory>${project.build.directory}/lib</outputDirectory>  
                    </configuration>  
                </execution>  
            </executions>  
        </plugin>  

    </plugins>  
</build>  
  1. 编译时出现文件download下不来 修改maven的set.xml 增加mirror节点,我这里使用的是aliyun的在线仓库
    <mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>*</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>

  2. No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

    • 编译器没有找到jdk或jre?
      • 打开build-path 发现使用的jre为jse5 修改为本地安装的jre
      •  1、eclipse菜单 - Window - Preferences- Java - Installed JREs 将配置的JRE定位到JDK,例如JRE home:D:\Program Files (x86)\Java\jdk1.6.0_45
          2、ALT+F5 进行 update project 。
          3、Debug or Run again.
    • 原因是在java配置中指向的是jre目录 而不是jdk目录 编译时找不到??

打包成功

  1. 实际操作过程中发现 jar包内依然没有包含所需要的依赖文件 不可以直接运行
  2. lib中的依赖依然需要在dependcies中添加 socpe为system指向project.basedir下的某一路径(lib)
  3. maven中的groupId和artifactId不要与仓库中的依赖相同
  4. <dependency>
    <groupId>junit1</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/iText-2.0.8.jar</systemPath>
    </dependency>

  5. http://quicker.iteye.com/blog/2319947

直接将本地jar打入maven库

直接通过mvn命令将jar包加入到本地仓库 即可直接引用

  1. cmd界面下,载jar包所在目录运行
mvn install:install-file -DgroupId=org.lwtea
 -DartifactId=IKAnalyzer -Dversion=0.0.1-SNAPSHOT 
 -Dpackaging=jar -Dfile=IKAnalyzer-0.0.1-SNAPSHOT.jar
  1. 然后直接引用即可 这样反而方便
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值