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

Maven放在JAR文件中的POM文件的意义是什么,它有什么用吗?

孟修竹
2023-03-14
问题内容

当Maven生成JAR文件时,它将模块的POM文件放在内部(似乎在目录 / 中)。

当我从Ant构建一个JAR文件以通过Maven
Ant任务进行部署时,此POM文件(JAR内部的一个)的存在重要吗?它似乎没有,但是我只是想确保它没有在任何地方使用,并确认它应该在JAR文件中的确切位置。


问题答案:

pom.xmlpom.properties文件打包在JAR以便由Maven的生产的每个工件是自描述的,也可以让你在使用自己的应用程序中的元数据,在需要时。一种简单的用法是检索应用程序的版本。

就是说,如果需要,可以通过MavenArchiverConfiguration停用这些文件的包含,该文件允许一个布尔型addMavenDescriptor参数并且不包含它们是安全的 (即使我觉得拥有它们也很好)。例如对于一个JAR:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <addMavenDescriptor>false</addMavenDescriptor>
          </archive>
        </configuration>
      </plugin>
    </plugins>
    ...
  </build>
  ...
</project>

关于这些文件的位置,addMavenDescriptor的文档说:

生成的存档是否将包含以下两个Maven文件:

  • pom文件,位于存档中 META-INF/maven/${groupId}/${artifactId}/pom.xml
  • 一个pom.properties文件,位于存档中META- INF/maven/${groupId}/${artifactId}/pom.properties

默认值是true。

这应该可以回答您的问题。



 类似资料:
  • 我正在研究jarsigner是如何工作的,以及META-INF文件夹中每个文件的用途。据我所知,清单。MF包含zip/jar中每个文件的列表以及它的摘要。*。SF文件包含清单文件的摘要,以及每个文件的列表以及清单中该文件部分的摘要。最后,是*。DSA/RSA文件包含的数字签名。SF文件。我的问题是,为什么需要SF文件?与对清单文件进行签名并将其存储在中相比,它有什么优势。RSA/DSA文件? 对文

  • appengine模块示例java包含appengine模块ear/src/main/application/META-INF/maven应用程序文件。xml。 > maven-application.xml什么? appenger-modes-sample-java示例的哪一部分指的是maven-application.xml还是构建系统或运行时系统寻找的常规文件? 如果这是一个约定,它的规范在

  • 问题内容: 我最近遇到了一个扩展名为.pid的文件,并在其中进行了探索,但没有发现太多。该文件说: Pid-File是一个包含进程标识号(pid)的文件,该文件存储在文件系统定义明确的位置,因此允许其他程序找出正在运行的脚本的pid。 任何人都可以对此进行更多说明,或指导我了解pid文件中包含的内容的详细信息吗? 问题答案: pid文件包含给定程序的进程ID(数字)。例如,Apache HTTPD

  • 在我Linux的主文件夹中,我有几个配置文件,文件扩展名为“rc”: 这些名字中的“rc”是什么意思?

  • 问题内容: 我得到了一个maven项目来编译并部署在tomcat服务器上。今天以前我从未使用过Maven,但是我已经使用了很多Google搜索功能。似乎此项目中的顶级文件的打包类型设置为。 部署此应用程序后我应该怎么做?我原本希望能够在某处或某处找到文件,但是我想我在错误的位置查找或缺少一步。 问题答案: 基本上是子模块的容器,每个子模块由与包装相同目录中的子目录表示。 嵌套在项目结构中的某个地方

  • 问题内容: 下面的简短bash脚本列出了给定目录及其子目录中的所有文件和目录。脚本中的意思是什么?请给我一些参考。谢谢 问题答案: 这是第一个参数的位置,被视为目录 在bash脚本参数文件传递到脚本(这是脚本的名称),然后,,…要访问所有的人,你既可以使用自己的标签或使用该组的结构之一。对于组构造,有和。(将所有参数视为一个块,并以分隔)