我需要更改maven-compiler-plugin用来编译测试的类路径值,但我找不到任何方法来做这件事...
我读过:
但这些解决方案对我不利。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<includes>
<include>**/*.java</include>
</includes>
<target>1.8</target>
<source>1.8</source>
<fork>true</fork>
<encoding>UTF-8</encoding>
</configuration>
<executions>
<execution>
<id>jdk7</id>
<phase>none</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<source>1.7</source>
<target>1.7</target>
<fork>true</fork>
<outputDirectory>${project.build.directory}/classes/jdk7/</outputDirectory>
</configuration>
</execution>
<execution>
<id>jdk8</id>
<phase>none</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<fork>true</fork>
<outputDirectory>${project.build.directory}/classes/jdk8/</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
这是我的客户端POM的配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>jdk7</id>
<phase>compile</phase>
</execution>
<execution>
<id>jdk8</id>
<phase>compile</phase>
</execution>
<execution>
<id>default-compile</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
正如您所看到的,我禁用了执行“default-compile”,因为它直接在target/classes文件夹中编译源代码的3倍,在我的例子中这是非常脏的。我只想要target/classes/JDK7中的JDK7类和target/classes/JDK8中的JDK8类。
问题是maven-compiler-plugin对类路径使用的“default-testcompile”执行是:
编译失败,因为maven-compiler-plugin没有在文件夹target/classes/jdk8中查找类文件。
注意:我知道如果我不禁用“default-compile”,它会起作用,因为类将在“target/classes”中,但我不想编译源代码的3倍...
您可以使用配置文件来使用不同的配置。您必须定义两个配置文件,一个使用jdk8配置,另一个使用JDK7配置。例如:
<profiles>
<profile>
<id>jdk7</id>
<activation>
<property>
<name>jdk7</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>jdk8</id>
<activation>
<property>
<name>jdk8</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
因此,当您想用jdk7构建时,只需调用-p jdk7
;当您想用jdk8构建时,则调用-p jdk8
。例如:
mvn clean install -P jdk7
我是测试自动化工程师,我已经为自动化脚本配置了Jenkins和maven项目,几天前我的所有脚本在Jenkins和本地运行良好,但现在当我通过异常运行build in Jenkins和本地系统时,在本地,当我尝试更新我的maven项目并通过命令“maven test”运行脚本时,它工作正常,当我尝试运行命令“maven clean”,然后以“maven test”的形式运行命令时,所有脚本都会运行
当我运行intellij idea maven安装时,它遇到了如下问题 无法执行目标组织。阿帕奇。专家插件:maven编译器插件:3.8.1:testCompile 如何解决?
我知道有很多问题都有类似的错误。在此之前,我将不胜感激,因为考虑到它只发生在Java9中。 我确实安装了java 9 为了简化示例,如果我下载一个非常简单的示例https://examples.javacodegeeks.com/core-java/java-9-httpclient-example/我尝试/ mvn清洁安装包-e 波姆。xml 我有点困惑是什么导致了这个问题。除此之外,我还面临着
当我在vscode的集成终端中运行java程序时,完整的java路径显示为一大框文本。有没有什么办法可以把它带走? /library/java/javavirtualmachines/jdk-13.0.1.jdk/contents/home/bin/java--enable-preview-dfile.encoding=utf-8-cp“/users/myusername/library/appl
我即将使用外部库,但它们不起作用,当我查看它们时,我发现了这个 所以我想知道如何更新我的编译器Abi版本,而且,我应该担心,其他一些外部库可能与此冲突吗?可以管理不同的编译器ABI版本?
问题内容: 我只是好奇地知道这一点,当我不进行“清理”就安装mvn时,maven仅编译了修改后的java文件。Maven如何识别Java文件是否被修改?我相信它没有使用文件的最后修改属性。 我相信的原因:我有一个模块,在合并了svn的更改后,我进行了mvn install,但它没有编译修改后的文件,当我查看更改时,我发现其中的’long’被修改为’Long’吸气剂和二传手。 所以我只想知道Mave