Bas*_*que 1 intellij-idea pom.xml maven maven-surefire-plugin
我的项目由 Maven 驱动,使用不是我自己制作的 POM(来自 Vaadin)。显然,我在项目中看到的 POM 文件依赖于其他 POM 文件的某种继承。虽然我在自己的 POM 中没有看到 的依赖项maven-surefire-plugin,但在我的项目中找到了这个工件,正如您在 IntelliJ 2019 的屏幕截图的右侧看到的那样。
我不是 Maven maven,所以我不知道确切的细节,但在查探中我发现了一些import行,所以我猜测 Maven POM 可以动态地从其他 POM 继承。
问题是我的项目中存在的版本maven-surefire-plugin相当旧,版本 2.12.4。我正在尝试运行JUnit 5,它需要 2.22.0或更高版本。当前版本是3.0.0-M3.
查看粉色箭头的左端,您可以看到我dependency在 POM 中添加了一个元素。
<dependency>\n <groupId>org.apache.maven.plugins</groupId>\n <artifactId>maven-surefire-plugin</artifactId>\n <version>3.0.0-M3</version>\n </dependency>\nRun Code Online (Sandbox Code Playgroud)\n\n在左箭头提示上,我要求3.0.0-M3尝试覆盖2.12.4右箭头提示上看到的神秘导入/继承的指定版本。但我的尝试失败了,因为旧版本在执行 Maven后仍然存在clean。install我什至尝试重新启动 IntelliJ。但不行,运行 Maven 时我的 JUnit 5 测试仍然被忽略test。
\xe2\x9e\xa5 是否有某种方法可以覆盖显然从某些神秘来源继承的依赖项的版本?
\n\n这是我在尝试添加<artifactId>maven-surefire-plugin</artifactId>依赖项失败之前的 POM。
<?xml version="1.0" encoding="UTF-8"?>\n<project xmlns="http://maven.apache.org/POM/4.0.0"\n xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">\n <modelVersion>4.0.0</modelVersion>\n <groupId>com.basilbourque.acmeapp</groupId>\n <artifactId>acmeapp</artifactId>\n <name>AcmeApp</name>\n <version>1.0-SNAPSHOT</version>\n <packaging>war</packaging>\n\n <properties>\n <maven.compiler.source>11</maven.compiler.source>\n <maven.compiler.target>11</maven.compiler.target>\n <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\n <failOnMissingWebXml>false</failOnMissingWebXml>\n\n <!--<vaadin.version>11.0.1</vaadin.version>-->\n <!--<vaadin.version>12.0.0.beta1</vaadin.version>-->\n <vaadin.version>13.0.0.alpha3</vaadin.version>\n </properties>\n\n <repositories>\n <!-- Repository used by many Vaadin add-ons -->\n <repository>\n <id>Vaadin Directory</id>\n <url>http://maven.vaadin.com/vaadin-addons</url>\n </repository>\n\n <repository>\n <id>vaadin-prereleases</id>\n <url>https://maven.vaadin.com/vaadin-prereleases</url>\n </repository>\n\n </repositories>\n\n <pluginRepositories>\n <!-- Repository needed for prerelease versions of Vaadin -->\n <pluginRepository>\n <id>vaadin-prereleases</id>\n <url>https://maven.vaadin.com/vaadin-prereleases</url>\n </pluginRepository>\n </pluginRepositories>\n\n <dependencyManagement>\n <dependencies>\n <dependency>\n <groupId>com.vaadin</groupId>\n <artifactId>vaadin-bom</artifactId>\n <type>pom</type>\n <scope>import</scope>\n <version>${vaadin.version}</version>\n </dependency>\n </dependencies>\n </dependencyManagement>\n\n <dependencies>\n <dependency>\n <groupId>com.vaadin</groupId>\n <artifactId>vaadin-core</artifactId>\n </dependency>\n\n <!-- Added to provide logging output as Flow uses -->\n <!-- the unbound SLF4J no-operation (NOP) logger implementation -->\n <dependency>\n <groupId>org.slf4j</groupId>\n <artifactId>slf4j-simple</artifactId>\n </dependency>\n\n <dependency>\n <groupId>javax.servlet</groupId>\n <artifactId>javax.servlet-api</artifactId>\n <!--<version>3.1.0</version>-->\n <version>4.0.1</version>\n <scope>provided</scope>\n </dependency>\n\n <!--JUnit 5-->\n <dependency>\n <groupId>org.junit.jupiter</groupId>\n <artifactId>junit-jupiter</artifactId>\n <version>5.4.0-RC1</version>\n </dependency>\n </dependencies>\n\n <build>\n <plugins>\n <!-- Jetty plugin for easy testing without a server -->\n <plugin>\n <groupId>org.eclipse.jetty</groupId>\n <artifactId>jetty-maven-plugin</artifactId>\n <version>9.4.14.v20181114</version>\n <configuration>\n <scanIntervalSeconds>1</scanIntervalSeconds>\n </configuration>\n </plugin>\n </plugins>\n </build>\n\n <profiles>\n <profile>\n <!-- Production mode can be activated with either property or profile -->\n <id>production-mode</id>\n <activation>\n <property>\n <name>vaadin.productionMode</name>\n </property>\n </activation>\n <properties>\n <vaadin.productionMode>true</vaadin.productionMode>\n </properties>\n\n <dependencies>\n <dependency>\n <groupId>com.vaadin</groupId>\n <artifactId>flow-server-production-mode</artifactId>\n </dependency>\n </dependencies>\n\n <build>\n <plugins>\n <plugin>\n <groupId>com.vaadin</groupId>\n <artifactId>vaadin-maven-plugin</artifactId>\n <version>${vaadin.version}</version>\n <executions>\n <execution>\n <goals>\n <goal>copy-production-files</goal>\n <goal>package-for-production</goal>\n </goals>\n </execution>\n </executions>\n </plugin>\n </plugins>\n </build>\n </profile>\n </profiles>\n</project>\nRun Code Online (Sandbox Code Playgroud)\n
<plugin>, 不<dependency>虽然我不是 Maven 专家,但解决方案似乎是<artifactId>maven-surefire-plugin</artifactId>在plugin元素中指定,而不是在dependency元素中指定。
删除您添加的<dependency>.
查找<plugins>POM 的(复数)部分,其中包含<pluginJetty 的一个元素。添加第二个plugin元素:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
</plugin>
Run Code Online (Sandbox Code Playgroud)
然后做一个 Mavenclean和install. 您应该会看到新版本出现在IntelliJ 的Maven面板中。
您现在可以执行 Maventest以查看执行的 JUnit 5 测试。
如果您觉得需要,可以通过覆盖导入的 POM 来更新屏幕截图右侧列出的所有插件。
<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-clean-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-deploy-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>3.0.0-M1</version>
</plugin>
<!--https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-install-plugin-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>3.0.0-M1</version>
</plugin>
<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-resources-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!--https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-war-plugin-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-site-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
<!--https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-surefire-plugin-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
</plugin>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3041 次 |
| 最近记录: |