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

maven-war-plugin忽略用户属性war.warname

柴彬
2023-03-14
<properties>
    <failOnMissingWebXml>false</failOnMissingWebXml>
</properties>

但是,如果我添加以下属性,插件将忽略它(生成的WAR具有默认名称,即artifactId-version):

<properties>
    <war.warName>${project.artifactId}</war.warName>
</properties>

以下是maven-war-plugin文档的两个摘录:

Warname:

    null

FailonMissingWebXML:

  • 如果web.xml文件丢失,构建是否失败。如果希望WAR构建时不使用web.xml文件,则设置为false。如果您正在构建一个没有web.xml文件的覆盖层,这可能很有用。
  • 类型:布尔
  • 因为:2.1-α-2
  • 必需:否
  • 用户属性:FailonMissingWebXML
  • 默认值:true

(来源:https://maven.apache.org/plugins/maven-war-plugin/war-mojo.html)

<properties>
    <!-- plugins use these values correctly -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <failOnMissingWebXml>false</failOnMissingWebXml>

    <!-- not "found" by maven-war-plugin -->
    <war.warName>${project.artifactId}</war.warName>
    <project.build.finalName>${project.artifactId}</project.build.finalName>
</properties>

编辑:既然maven-war-pluginwar.warname的2.4版本按预期工作,但是我仍然不明白为什么设置project.build.finalname不能工作。

共有1个答案

微生弘
2023-03-14

问题只是您错误地使用了属性,导致用户属性通常用于以下命令:

mvn -Dwar.warName=xxx war:war

如果您想在pom文件中使用它,您必须像这样使用它:

  <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          <warName>WhatEverYouLike</warName>
        </configuration>
      </plugin>
      ...
    </plugins>
  </build>
  ...

您不应该使用pom中的属性来定义这些东西。最好为此使用配置标记。

<project..>
  <build>
    <finalName>WhatYouLIke</finalName>
    ..
  </build>
</project>
 类似资料:
  • 选项无效。 运行生成一个war目录,其中。class文件位于目录中,它们也不会存档到目录中的jar中。产生相同的结果。 JIRA票-https://issues.apache.org/JIRA/browse/mwar-355 这就是有问题的项目:https://bitbucket.org/dmos62/raudondvaris

  • 问题内容: 我想用我的主要Java项目及其所有依赖项创建一个jar文件。所以我在pom文件中创建了以下插件定义: 所以我执行,将所有的依赖复制到而不是复制上,效果很好。有任何想法吗? 问题答案: 正常:您配置了名为的特殊执行,但是,直接在命令行上调用目标会创建默认执行,该默认执行与您配置的执行不同。因此,不会考虑您的配置。 在Maven中,可以在2个地方配置插件:用于所有执行(在级别使用)或用于每

  • 问题内容: 我在GlassFish 4上使用java.util.logging。 我正在定义自己的类,以通过定义System属性 来初始化。 我的班级加载文件,将其与其他属性文件合并,并进行一些自定义替换。 以下是我文件的相关部分: 我正在使用标准并将其配置为使用格式化程序。 但是字符串被完全忽略了。相反,SimpleFormatter使用其默认格式。 我哪里做错了? 问题答案: 我假设系统属性是

  • 问题内容: 我有一个标准POJO,其中包含一组属性。POJO已被注释为,以便作为文档保留在MongoDB中。 我如何(注释?)可以忽略/避免POJO中的属性之一被保留? 问题答案: 该注释是。参见http://static.springsource.org/spring- data/data-document/docs/current/reference/html/#mapping-usage-

  • 我有一个wab-web应用程序包(osgi),我需要我的自定义清单。在互联网上,我找到了一个解决方案——我们创建src/main/Resources/META-INF/MANIFEST.MF并在pom中: 但是当我在最终战争中这样使用时,我有两个MANIFEST.MF /META-INF/MANIFEST.MF /WEB-INF/类/META-INF/MANIFEST.MF 我发现的这个问题的解决

  • 我不知道为什么,但dom4j不加载xmlns属性,如: xmlns=”http://webservices.example.com/servicesplatform/command/1.0.0“xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance" 其他属性通常会加载,但会被忽略。我使用属性迭代器检查所有元素的所有属性。 下面是我如何读取此xml