【问题标题】:How to make a runnable jar of my maven project?如何为我的 Maven 项目制作一个可运行的 jar?
【发布时间】:2013-05-07 01:21:44
【问题描述】:

我想为我的项目制作一个 jar 文件,但是当我尝试制作 jar 时它显示错误。

到目前为止,我构建了一个使用命令执行的jar,

java -cp <JAR FILE> <MAIN CLASS NAME>.

我通过在 POM 中添加插件来做到这一点,

<plugin> 
<artifactId>maven-assembly-plugin</artifactId> 
<configuration> 
<descriptorRefs> 
<descriptorRef>jar-with-dependencies</descriptorRef> 
</descriptorRefs> 
</configuration> 
</plugin>

并通过运行命令,mvn cleanmvn install assembly:assembly

但我想要一个 jar,它将通过使用命令 java -jar &lt;JAR FILE&gt;

运行

为此,我阅读了this link 并实施了。但它显示以下错误,

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-jar-plugin:2.4:jar (default-jar) on project ThreadPool: Unable to parse configuration of mojo org.apache.maven.plugins:maven-jar-plugin:2.4:jar for parameter manifest: Cannot find setter, adder nor field in org.apache.maven.archiver.ManifestConfiguration for 'addClassPath' -> [Help 1] 

请帮我制作 jar 文件,使用java -jar 命令执行。 提前致谢 。期待您的善意回应。

编辑 NO 1

我在 POM 中添加了下面的插件,依赖项,

<!-- Example dependency -->
<dependencies>
    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.1</version>
    </dependency>
</dependencies>
...
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                    </manifest>
                </archive>
            </configuration>  
        </plugin>
    </plugins>
</build>

【问题讨论】:

    标签: java maven jar pom.xml manifest.mf


    【解决方案1】:

    试试这个

    <plugin>
          <artifactId>maven-assembly-plugin</artifactId>
          <configuration>
            <archive>
              <manifest>
                <mainClass>your.fully.qualified.MainClass</mainClass>
              </manifest>
            </archive>
            <descriptorRefs>
              <descriptorRef>jar-with-dependencies</descriptorRef>
            </descriptorRefs>
          </configuration>
    </plugin>
    

    这将添加

    Main-Class: your.fully.qualified.MainClass 
    

    标头到 jars 的 META-INF/MANIFEST.MF 并使其可运行

    您可以将 maven build 作为一行运行

    mvn clean package assembly:single
    

    【讨论】:

      【解决方案2】:

      该错误意味着您的 pom.xml 文件中的某处有一个元素 ClassPath,您正在配置的元素无法理解该元素。搜索一下,看看是否有意义。

      【讨论】:

      • 我添加了我在 POM 中添加的依赖项,请参见 EDIT NO。 1. 我在哪里添加 MainClassPath,你在回答中说??
      • 上述依赖给出了我在问题中提到的错误。
      猜你喜欢
      • 2015-09-21
      • 2013-10-07
      • 1970-01-01
      • 2016-12-09
      • 2014-03-31
      • 2013-08-02
      • 2020-06-02
      • 2019-06-19
      • 2014-04-09
      相关资源
      最近更新 更多