简体   繁体   English

如何使用依赖于平台的库实现跨平台的 Intellij IDEA `.iml` 文件?

[英]How to achieve cross-platform Intellij IDEA `.iml` file with platform-dependent libraries?

While working across multiple OS, what is preferable way to use libraries in IDEA project?在跨多个操作系统工作时,在 IDEA 项目中使用库的最佳方式是什么?

The.iml file has libraries from Maven listed, some platform dependent: .iml 文件列出了 Maven 中的库,某些平台相关:

...
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
    <orderEntry type="library" name="Maven: org.openjfx:javafx-controls:17.0.0.1" level="project" />
    <orderEntry type="library" name="Maven: org.openjfx:javafx-controls:linux:17.0.0.1" level="project" />
    <orderEntry type="library" name="Maven: org.openjfx:javafx-graphics:17.0.0.1" level="project" />
    <orderEntry type="library" name="Maven: org.openjfx:javafx-graphics:linux:17.0.0.1" level="project" />
    <orderEntry type="library" name="Maven: org.openjfx:javafx-base:17.0.0.1" level="project" />
    <orderEntry type="library" name="Maven: org.openjfx:javafx-base:linux:17.0.0.1" level="project" />
    <orderEntry type="library" name="Maven: org.openjfx:javafx-fxml:17.0.0.1" level="project" />
    <orderEntry type="library" name="Maven: org.openjfx:javafx-fxml:linux:17.0.0.1" level="project" />
...

Trying to boot it up on Windows those get overwritten with Windows related versions of those libraries:尝试在 Windows 上启动它会被这些库的 Windows 相关版本覆盖:

...
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
    <orderEntry type="library" name="Maven: org.openjfx:javafx-controls:17.0.0.1" level="project" />
    <orderEntry type="library" name="Maven: org.openjfx:javafx-controls:win:17.0.0.1" level="project" />
    <orderEntry type="library" name="Maven: org.openjfx:javafx-graphics:17.0.0.1" level="project" />
    <orderEntry type="library" name="Maven: org.openjfx:javafx-graphics:win:17.0.0.1" level="project" />
    <orderEntry type="library" name="Maven: org.openjfx:javafx-base:17.0.0.1" level="project" />
    <orderEntry type="library" name="Maven: org.openjfx:javafx-base:win:17.0.0.1" level="project" />
    <orderEntry type="library" name="Maven: org.openjfx:javafx-fxml:17.0.0.1" level="project" />
    <orderEntry type="library" name="Maven: org.openjfx:javafx-fxml:win:17.0.0.1" level="project" />
...

... which I don't think will stay the same for back on Linux/MacOS. ...我认为这不会在 Linux/MacOS 上保持不变。

How to work with that?如何使用它? Adding it to .gitignore seems bad idea...将它添加到.gitignore似乎是个坏主意......

Use Settings (Preferences on macOS) |使用设置(macOS 上的首选项)| Build, Execution, Deployment |构建、执行、部署 | Build Tools |构建工具 | Maven | Maven | Importing |导入 | Store generated project files externally option.在外部存储生成的项目文件选项。

Don't commit project files for the external build model based projects (Maven/Gradle/SBT).不要为基于外部构建 model 的项目 (Maven/Gradle/SBT) 提交项目文件。

See also this FAQ .另请参阅此常见问题解答

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM