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

使用不同的分类器构建工件

公德明
2023-03-14
<dependency>
    <groupId>com.example</groupId>
    <artifactId>example</artifactId>
    <version>1.0</version>
    <classifier>jdk6</classifier>
</dependency>

我也想让他们在一次通过中建立起来。所以档案可能不是一个好办法。我尝试使用多个插件执行。

首先,我创建两个单独的构建目录:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
        <execution>
            <id>createClassesDir</id>
            <phase>process-resources</phase>
            <configuration>
                <tasks>
                    <mkdir dir="${project.build.outputDirectory}/jdk6" />
                    <mkdir dir="${project.build.outputDirectory}/jdk7" />
                </tasks>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>

然后我尝试将maven-compiler-plugin配置为build两次,在两个目录中:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <executions>
        <execution>
            <id>jdk6</id>
            <phase>compile</phase>
            <goals>
                <goal>compile</goal>
            </goals>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
                <fork>true</fork>
                <compilerArguments>
                    <d>${project.build.outputDirectory}/jdk6</d>
                </compilerArguments>
            </configuration>
        </execution>
        <execution>
            <id>jdk7</id>
            <phase>compile</phase>
            <goals>
                <goal>compile</goal>
            </goals>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
                <fork>true</fork>
                <compilerArguments>
                    <d>${project.build.outputDirectory}/jdk7</d>
                </compilerArguments>
            </configuration>
        </execution>
    </executions>
</plugin>
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ example ---
[INFO] Compiling 1 source file to [...]/example/target/classes
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (jdk6) @ example ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (jdk7) @ example ---
[INFO] Nothing to compile - all classes are up to date

共有1个答案

傅星光
2023-03-14

老实说,您不应该从同一个maven项目创建两个maven JAR。可以读到这里,背后是有原因的。

同一篇文章还解释了两种方法,如果您愿意,您仍然可以这样做

    Using profiles
    By doing two executions of maven jar plugin

你也可以在SO上提这个问题。

  pom-jdk6.xml
  pom-jdk7.xml
 类似资料:
  • 我使用了一个用于prod的构建方案和一个用于staging的构建方案(有两个不同的包标识符),并且我试图为每个方案使用单独的GoogleService-info.plist。在初始化GCM(和goole登录)时,有没有方法手动选择plist文件?还是可以避免使用plist而手动进行设置? 谢谢!

  • 问题内容: 我有一个场景,其中我的项目需要在不同的JDK中进行编译,并且所生成的工件名称应根据所使用的JDK而有所不同。例如,如果项目名称为MyProject,并且我调用mvn install,则需要在JDK 1.4和JDK 1.5中对其进行编译,最后我得到了两个来自同一项目的jar(MyProjectJDK14-1.0和MyProjectJDK15-1.0)。有可能实现这一目标吗? 问题答案:

  • 我正在构建一个具有多种不同风格的应用程序。我的问题是,如果我为基于flavor的活动使用不同的代码,我是否需要在所有flavor directores中包含该代码的副本,或者如果我只将代码副本保留在app/src/main/java目录中,如果我不将其包含在flavor目录中,其他所有flavor是否会使用main/java中的文件。 我有 app/src/main/java/com/mycomp

  • 我通过选择构建变体到来运行代码。然而,运行结果显示,分级程序仍然从中选择类(和),而不是在中使用更改后的版本。 我是不是漏掉了什么?

  • 我一直在谷歌搜索和跟随不同的教程来学习如何做各种事情,到目前为止,我的进展还不错。但现在我已经停滞不前了。 我想做的是,当我的应用程序启动和用户按下登录按钮时,将它们转发到管理员主页上。 这是login.java中的代码: 非常感谢任何帮助。 附注。当用户单击该按钮时,我不只是想打开任意场景,而是想打开一个已经应用了quizapp.fxml、quizapp.css和administratorlog

  • 为什么Eclipse在构建一个Android项目时,会陷入构建工作区的无限循环...和(重新)构建工作区...和(重新)构建工作区... 这是已知的虫子吗? 走出这个循环的正确方法是什么? 备注: 如果取消选中,它会生成良好的版本,甚至导出一个完美运行的签名发行版APK。 此问题仅在我升级到最新的SDK r19后才开始。在此之前(SDK r11),我从未遇到过此问题。 错误160868正好描述了这