当前位置: 首页 > 面试题库 >

从单个Maven项目创建多个可运行的Jar(包括依赖项)

姜俊民
2023-03-14
问题内容

我有一个具有多个主类的maven项目。我想从这些项目中生成可运行的Jar(包括所有依赖项)。我目前有以下构建配置(使用maven.assembly):

<build>
<plugins>
    <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
            <archive>
                <manifest>
                    <mainClass>classpath.to.my.mainClass</mainClass>
                </manifest>
            </archive>
            <descriptorRefs>
                <descriptorRef>jar-with-dependencies</descriptorRef>
            </descriptorRefs>
        </configuration>
    </plugin>
</plugins>
</build>

他们是否可以通过Maven-assembly实现这一目标?如果没有,实现目标的最简单方法是什么?


问题答案:

我无法以maven-assembly-plugin令人满意的方式解决此问题,因此我选择了其他解决方案。我使用了onejar-maven-plugin

<build>
  <plugins>
  <plugin>
    <groupId>org.dstovall</groupId>
    <artifactId>onejar-maven-plugin</artifactId>
    <version>1.4.4</version>
    <executions>
      <execution>
        <id>build-first</id>
          <configuration>
            <mainClass>classpath.to.first.Main</mainClass>
            <attachToBuild>true</attachToBuild>
            <classifier>onejar</classifier>
            <filename>first-runnable.jar</filename>
          </configuration>
          <goals>
            <goal>one-jar</goal>
          </goals>
        </execution>
      <execution>
        <id>build-second</id>
          <configuration>
            <mainClass>classpath.to.second.Main</mainClass>
            <attachToBuild>true</attachToBuild>
            <classifier>onejar</classifier>
            <filename>second-runnable.jar</filename>
          </configuration>
          <goals>
            <goal>one-jar</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

<pluginRepositories>
  <pluginRepository>
     <id>onejar-maven-plugin.googlecode.com</id>
     <url>http://onejar-maven-plugin.googlecode.com/svn/mavenrepo</url>
  </pluginRepository>
</pluginRepositories>


 类似资料:
  • Eclipse-Neon Maven Java原型-4项目 嗨,我生成了一个包含4个项目的maven原型? 请你帮我做那件事好吗。因为我试过但没有成功 我的尝试: 我添加了对BULK的框架依赖 我添加了对bulk_ear的框架依赖 但是当我安装Maven时,framework.jar没有打包到EAR。

  • 问题内容: 我不想将其打包在单个可执行jar中进行分发。我需要一个可执行文件,例如main.jar,所有依赖项都在libs / *。jar中 我如何才能使maven可执行jar不预先包含在其依赖库中? 在如何使用Maven创建具有依赖项的可执行JAR中?10年12月1日10:46回答了一条注释,安德烈·阿隆森(AndréAronsen),但那根本不起作用(未设置失败的sadescriptorRef

  • 问题内容: 我想将我的项目打包在一个可执行的JAR中进行分发。 如何使Maven项目将所有依赖JAR打包到我的输出JAR中? 问题答案: 然后用 编译目标应在Assembly:single:single之前添加,否则不包括您自己项目中的代码。 通常,此目标与自动执行的构建阶段相关。这样可以确保在执行mvn install或执行部署/发布时构建JAR 。

  • 我有一个mvn项目,它包含对apache Commons-Lang3的依赖。我设法为这个jar文件生成了一个manifest.mf,它通过我的远程服务器上的java-jar.jar启动。然而,它不包括任何依赖项,我不知道为什么。 您可以看到,它正确地将依赖关系解析为commons-lang并将其放入清单中。但实际文件不见了。 有人知道为什么吗?

  • 我已经在NetBeans8.1中创建了5个不同的Java SE项目。我想创建一个新的项目,该项目带有一个介绍窗口,该窗口带有链接/打开链接到该按钮的项目的按钮,并从该窗口创建一个软件。 我已经在主项目->Properties->Library->Compile->Add Project中添加了依赖项(其他项目的jar文件)。 当我在netbeans中运行它们时,运行窗口打开了,但是当我从主项目中调

  • 问题内容: 我想从我的Python项目创建一个可执行文件。用户无需安装Python就可以下载并运行它。如果我只是分发软件包,则可以使用pip,wheel和PyPI进行构建和分发,但这需要用户具有Python并且知道如何安装软件包。我可以用什么来从Python项目构建一个自包含的可执行文件? 问题答案: 这是一些常见的。除非明确指出,否则截至我上次编辑(2020年1月)时,下面列出的所有项目都将得到