【问题标题】:Building artifacts for multiple java architectures using Maven (anything better than profiles)?使用 Maven 为多个 java 架构构建工件(比配置文件更好)?
【发布时间】:2011-03-02 00:15:24
【问题描述】:

阅读了我能找到的所有帖子和问题后,我很难找到比仅使用个人资料进行以下操作更好的方法。

我需要使用相同的模块集,并将它们编译为完全不同的架构(J2ME 与 J2SE),它们需要对某些库具有不同的依赖关系,并且在编译时需要不同的源/目标/调试设置。

使用配置文件和分类器,我可以通过使用一个配置文件运行、清理并使用另一个配置文件运行构建来做到这一点。分类器对结果进行分类。但是,如果您只是更改配置文件并重建,它不会自行清理,它需要针对超级 pom 多次运行 maven,并且它不允许您同时启用多个配置文件(以及结果乱七八糟的很丑)。

我可以使用附加的工件并强制编译和 jar 步骤运行多次吗?

javac 选项真的很重要:(使用配置文件的依赖项不会导致任何问题)

对于 J2ME:
来源=1.4
目标=1.4
-g:来源

用于 J2ME 调试
来源=1.4
目标=1.4

对于 J2SE
来源=1.5
目标=1.5

【问题讨论】:

  • 我真的很想帮忙。我能得到更多信息吗?您是否需要每个模块的多个版本?是否有您尝试拥有多个版本的“父”工件,例如 J2ME/J2ME-debug/J2SE 的 JAR 文件。
  • 是的,每个 jar(多模块项目)都需要使用这两种设置进行编译。我使用顶级 pom 来驱动所有配置文件和编译器设置,并将所有单独的 jar 引用为模块。它还驱动依赖关系,但这主要是一个运行时问题(我需要 J2ME 和 J2SE 的某个 jar 的不同版本),而且问题几乎没有编译问题那么严重。
  • 顺便说一句,我也尝试过执行,但是两个编译执行都执行了,然后两个打包执行都执行了,所以生成的jar都有相同的内容。
  • 你能分享你的 pom.xml 细节吗,你是怎么处理的?
  • 我认为这种情况正是配置文件的用途。

标签: maven-2 maven


【解决方案1】:

您能否显式调用编译器插件Maven Compiler Plugin,然后定义多个执行。像

这样的东西
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <executions>
        <execution>
          <id>compile1</id>
          <phase>generate-resources</phase>
          <goals>
              <goal>compile</goal>
          </goals>
          <configuration>
                <verbose>true</verbose>
                <fork>true</fork>
                <executable><!-- path-to-javac --></executable>
                <compilerVersion>1.3</compilerVersion>
            </configuration>
       </execution>
       <execution>
          <id>compile1</id>
          <phase>generate-resources</phase>
          <goals>
              <goal>compile</goal>
          </goals>
          <configuration>
                <verbose>true</verbose>
                <fork>true</fork>
                <executable><!-- path-to-javac --></executable>
                <compilerVersion>1.3</compilerVersion>
            </configuration>
       </execution>
   </executions>
  </plugin>

【讨论】:

    猜你喜欢
    • 2011-06-23
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    • 2015-08-21
    • 2018-10-01
    • 2016-01-27
    • 2012-12-06
    • 1970-01-01
    相关资源
    最近更新 更多