欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-01 12:39:41
...

本地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. 然后直接引用即可 这样反而方便
相关标签: maven jar