当前位置: 首页 > 知识库问答 >
问题:

Maven:用with JAR-WITH Dependencies分发源代码

裴永年
2023-03-14

我正在使用Maven assembly插件将Java项目的二进制文件打包到一个fat jar中(带有jar-with-dependencies描述符)。这个挺管用的。

我的pom.xml如下所示:

<project>
...
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <finalName>${pom.artifactId}-${pom.version}</finalName>
                    <appendAssemblyId>false</appendAssemblyId>
                    <outputDirectory>${project.basedir}/bin/</outputDirectory>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

共有1个答案

楚俊杰
2023-03-14

最简单的解决方案是使用预定义的描述符src,或者使用预定义的描述符project可能更好:

  <descriptorRefs>
    <descriptorRef>jar-with-dependencies</descriptorRef>
    <descriptorRef>src</descriptorRef>
  </descriptorRefs>

或者另一种选择如下所示:

  <descriptorRefs>
    <descriptorRef>jar-with-dependencies</descriptorRef>
    <descriptorRef>project</descriptorRef>
  </descriptorRefs>
 类似资料:
  • 问题内容: 我将决定该项目的编程语言。要求是某些客户希望在没有外部Internet访问的情况下在隔离的服务器上运行应用程序。 为此,我需要向他们分发应用程序,并且不能使用在我的云上运行的SaaS方法(例如,我更愿意这样做…)。 问题是,如果我决定使用Python进行此开发,则需要为客户提供易读的代码,而这并不是我真正想做的(当然,我了解所有“您确实需要保护您的源代码”这类问题,但目前已超出范围)。

  • 问题内容: 我有很多Java源代码,需要自定义预处理。我想摆脱它,但是现在不可行,所以我坚持了下来。鉴于我有一个不幸的问题,而这个问题本来不应该存在的,那么我该如何使用Maven解决这个问题呢? (对于整个故事,我要用一个maven替换一个基于python的构建系统,因此请一次进行一次改进。修复非标准源代码会更加困难,并且将在以后发布。) 是否可以使用任何现有的Maven插件在编译时实际更改源文件

  • 我正在开发两个相关项目。其中一个是“帮手”一个,另一个是“主”一个。我在不断地更新“主”,但时不时也在更新“帮手”一个。然后,我在Gradle的maven插件中运行goal,并在本地maven repo中获取JAR。之后,我在“main”项目中进行分级更新,并将更新的jar链接起来。 有两个问题。 1)如果继续使用maven插件,那么如何将源代码发布到本地maven repo中? 2)如果没有ma

  • 我有一个由许多maven项目组成的应用程序。我在日蚀中工作。一些项目使用Maven插件为Web服务等生成存根类。 当我将项目导入到新的工作区时,我必须发出maven generate sources命令,然后附加源文件夹以在每个项目上构建路径。我处理的应用程序有5-6个以上的项目需要这些步骤。 是否有一个插件可以安装在Eclipse中以获取生成的源代码,或者甚至是一个生成源代码并更新构建路径以保存

  • 问题内容: 我正在忙于使用Maven将现有项目从Ant构建转换为Ant构建。该构建的一部分包括使用hibernate hbm2java工具将.hbm.xml文件的集合转换为Java。这是用于执行此操作的Ant脚本的片段: 我在互联网上四处张望,有些人(我认为)似乎在Maven中使用Ant,而另一些人使用Maven插件。我宁愿避免混合使用Ant和Maven。任何人都可以建议一种方法来执行此操作,以便

  • 我正在制作一个maven项目,它将使用Jaxb2 maven插件从xsd文件生成java文件。我的项目结构如下: 下面是pom的插件配置。xml 如果我这样编译,那么我会得到以下错误(即使源目录包含有效的模式文件): 然而,如果我像下面这样注释源代码并取消注释和修改,那么我就能够在公共模式下从模式中生成java类。 有人能告诉我为什么会这样吗?如果我必须解析一个根文件夹(有多个子文件夹)下的所有架