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

如何让 maven 构建平台独立?

令狐增
2023-03-14

在我的mac上使用Maven构建时,在< code>mvn install上,我得到

[警告]使用平台编码(实际上是MacRoman)来复制过滤的资源,即构建取决于平台!

是否可以为给定平台 (Linux) 构建或以其他方式独立于构建平台?

共有3个答案

池砚文
2023-03-14

针对特定需求:

<!-- https://maven.apache.org/plugins/maven-resources-plugin/index.html -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>3.1.0</version>
    <configuration>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>

如果插件已经配置,则只需添加

<encoding>UTF-8</encoding>
公西浩
2023-03-14

如果@Kal的回答对你不起作用,也许你可以从我最后的30分钟中吸取教训......下面的链接在上面的答案中添加了一行并解决了我的问题。我的问题与 maven-resources-plugin 2.6 有关,但以下解决方案的提供商有一个不同的问题,它解决了......https://stackoverflow.com/a/3018152/2485075

冷俊健
2023-03-14

当您没有在pom.xml中提供以下内容时,就会发生这种情况

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

缺少这一点意味着您正在使用特定于平台的编码,这就是为什么出现警告的原因。

 类似资料:
  • 我有一个多模块java项目。Maven需要大约40秒来构建它。我也尝试过使用多线程构建的maven,方法是指定-T和-C args来表示要使用的线程和内核的数量。但我还没有看到我构建的墙时间有任何显著的改善 我正在使用maven 3.2.3,有时我需要非常频繁地构建我的项目<我知道清洁目标需要很多时间,但我不能忽略它<请给我一些建议。。。。 编辑: 注意:在我的情况下,清洁不需要太多时间。它在1秒

  • 问题内容: 这样做时,我希望在目标目录中包含2个WAR文件。一个将包含 生产 ,而另一个将包含 test / uat 。 我已经试过了: 但是,我最终只能参加测试WAR。 问题答案: 我不认为您可以一步完成此操作(实际上,令Maven没有抱怨您的设置并且不知道应用了哪个设置,我感到很惊讶),我建议您使用配置文件或过滤来管理此使用案件。 如果您确实不同,则可以将maven-war-plugin配置放

  • 问题内容: 我正在使用以下代码从给定路径获取包含所有子目录的数组。 我需要数组来检查某些文件夹是否在此路径中的正确位置。直到findBugs抱怨File.separator用作正则表达式之前,这似乎是一个很好的解决方案。似乎将Windows文件分隔符传递给从中构建正则表达式的函数是个坏主意,因为反斜杠是转义字符。 如何不使用File.separator以跨平台方式拆分路径?还是这样的代码好吗? 问

  • 问题内容: 具体来说,我运行插件来生成文件。这仅在Windows上有效,因此我想知道是否可以在其他平台上“退出”此步骤? 插件被绑定到执行阶段,就像这样 问题答案: 您可以将该插件包装在单独的构建配置文件下,然后在所需的构建上启用该配置文件 例如: 现在在启动Maven时传递参数以指定配置文件 例如:

  • 我总是问这个问题,但我找不到确切的答案: Docker平台独立吗? 我的意思是,当我在Windows中生成映像时,我能在Linux或macOS上运行该映像吗?或者当我在Ubuntu上生成映像时,我可以在Windows上运行该映像吗? 如果是,怎么做?如果不是,那么说docker映像可以在任何地方运行而不用担心任何依赖又有什么意义呢? 请帮我回答这个问题

  • 问题内容: 我有一些通过 Runtime.getRuntime.exec(String) 运行命令的代码,它可以在Windows上运行。当我将代码移至Linux时,它崩溃了,并且解决该问题的唯一方法是切换到 exec(String []) 版本。如果我这样处理,代码在Windows和Linux上是否可以相同,还是应该在Windows上使用exec(String)而在Linux上使用exec(Str