maven-3 相关问题

Apache Maven是一个用于项目管理和构建自动化的工具。此标记用于与Maven版本3.x相关的问题。对于非特定版本的问题,请使用[maven]标记。

在 Intellij IDE 中找不到插件“maven-clean-plugin:”

我在 pom.xml 中添加了以下内容。 maven-clean-插件 <

回答 1 投票 0

使用多个已安装版本(Java 8、11、17)中的特定 Java 版本运行 Maven 项目

我的系统上安装了多个Java版本(Java 8、11和17),并且我需要使用指定的Java版本运行我的Maven项目。实现这一目标的最佳方法是什么? 我正在寻找...

回答 2 投票 0

为每个项目设置不同的maven镜像

我正在参与两个项目,这两个项目都使用私有maven存储库(使用nexus)。 由于他们都使用自己的第3方库,所以我想设置相应的镜像......

回答 2 投票 0

Maven 3.5中可以从maven扩展添加maven存储库吗

是这个代码吗 项目.getPluginRepositories().add(myCustomRepository); 在 Maven 扩展(扩展 AbstractMavenLifecycleParticipant 的类)的 afterProjectsRead 方法内部执行应该...

回答 2 投票 0

使用ANTLR结合java和maven来解析表达式并将其转换为SpEL

我需要使用 ANTLR 并将给定表达式转换为其等效的 spring 表达式语言。下面是一组简单的示例输入和输出表达式。 输入:(帐户='233AS77')AND(代码=...

回答 1 投票 0

如何使用IntelliJ IDEA执行mvn命令?

我正在尝试在本地 Maven 存储库中添加 Oracle JDBC 驱动程序。我找到了这个链接来这样做。 我想在 Inside IntelliJ IDEA 中做同样的事情。有没有办法从 IntelliJ 执行 mvn 命令

回答 6 投票 0

Maven:子模块无法继承父模块的依赖项

这是我的父母 pom 4.0.0 com.github.fish56 Maven模块 这是我的父母 pom <modelVersion>4.0.0</modelVersion> <groupId>com.github.fish56</groupId> <artifactId>MavenModules</artifactId> <version>1.0-SNAPSHOT</version> <modules> <module>dao</module> </modules> <packaging>pom</packaging> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.6</version> <scope>import</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> </dependencies> </dependencyManagement> 这是我的子模块的 pom <parent> <artifactId>MavenModules</artifactId> <groupId>com.github.fish56</groupId> <version>1.0-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>dao</artifactId> <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> </dependencies> 我希望子模块可以继承父模块的依赖,但是失败了。 我无法在我孩子的 pom 中使用 Lombok 或 Junit。 这是我的文件树 . ├── dao │   ├── pom.xml │   ├── src │   └── target ├── pom.xml 我认为应该有一种方法可以在所有模块之间共享一些依赖项,但我找不到解决方案。 在父级POM中,<dependencies>和<dependencyManagement>的主要区别如下: <dependencies>部分中指定的工件将ALWAYS作为子模块的依赖项包含在内。 在 <dependencyManagement> 部分中指定的工件,如果也在子模块本身的 <dependencies> 部分中指定,则将仅包含在子模块中。 请通过以下链接了解更多信息: Maven 中依赖管理和依赖关系的区别 您导入 lombok BOM <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.6</version> <scope>import</scope> </dependency> 然后你尝试将它用作依赖项。但 BOM 只是 dependencyManagement 条目的列表。它不能是子项目的依赖项。

回答 2 投票 0

有关本地存在但从远程存储库缓存的工件的 Maven 消息

突然,在 GitLab 中运行 Maven 3.9.5,并在项目中本地安装了缓存的 .m2 存储库,我收到以下消息: [INFO] Artifact XXX 存在于本地存储库中,但已缓存 夫...

回答 1 投票 0

防止 Maven 从远程存储库下载自己的项目模块作为工件

有一个maven项目,有几个模块。所有模块都具有相同的版本 1.2.0-SNAPSHOT。 在构建项目时,在 CLI 参数中指定模块名称(例如运行一些测试...

回答 1 投票 0

Maven POM 可以并且应该指定它是否需要 Maven 3 或更高版本吗?

我目前正在对使用 Maven 的 Java 项目进行一些清理,并使用 NetBeans IDE 来“调试”POM 中的问题。我在IDE中设置了Maven 3.0.4作为Maven版本,但是其他开发者...

回答 3 投票 0

如何使用本地Maven存储库引用另一个基于Spring的项目?

有两个项目。导出(导出某些功能)和导入(使用上述导出功能)。 从导出项目中 mvn clean install 然后添加...

回答 1 投票 0

即使另一个配置文件被激活,如何保持 activeByDefault 的 Maven 配置文件处于活动状态?

我的 pom.xml 中有一个配置文件,它应该始终处于活动状态,除非它被明确停用(-P !firstProfile)。 我通过使用 activeByDefault 标志解决了这个问题: 我的 pom.xml 中有一个配置文件,除非明确停用(-P !firstProfile),否则它应该始终处于活动状态。 我通过使用 activeByDefault 标志解决了这个问题: <profiles> <profile> <id>firstProfile</id> <activation> <activeByDefault>true</activeByDefault> </activation> ... </profile> </profiles> 现在在同一个 pom.xml 中,我定义了第二个配置文件,只有当配置文件真正激活时(-P secondaryProfile),它才应该处于活动状态。 因此默认行为是:firstProfile 处于活动状态,secondProfile 处于非活动状态。 在其他时候,除了第一个配置文件之外,我还想激活第二个配置文件。 现在的问题是,如果我使用“-P secondaryProfile”执行此操作,则 firstProfile 不幸会被停用。 Maven 文档指出了这一点: ... 该配置文件将自动 对所有构建都有效,除非另一个 激活同一个 POM 中的配置文件 使用前面描述的一种 方法。所有处于活动状态的配置文件 默认情况下会自动 当 POM 中的配置文件被停用时 在命令行上激活或 通过其激活配置。 ... 是否有可能以某种方式保持第一个配置文件始终处于活动状态(无需在settings.xml中声明它)? 一个技巧是避免 activeByDefault,而是通过缺少属性来激活配置文件,例如: <profiles> <profile> <id>firstProfile</id> <activation> <property> <name>!skipFirstProfile</name> </property> </activation> ... </profile> </profiles> 然后您应该能够使用 -DskipFirstProfile 停用配置文件 或使用 -P !firstProfile,但否则配置文件将处于活动状态。 参见:Maven:完整参考,配置文件激活 - 通过缺少属性进行激活 我希望有这样的可能性,但我经常错过它。我能找到的唯一相关的 JIRA 问题是这个: MNG-4917:配置文件未激活,即使其 activeByDefault 设置为 true 已解决为Not A Problem。 我已经停止使用activeByDefault,因为这种“全有或全无”的方法让它对我来说毫无价值。 更改此行为的唯一方法是编写自己的 DefaultProfileSelector 替代品,使用 @Component( role = ProfileSelector.class ) 将其注册为丛组件并将其放入 ${MAVEN_HOME}/lib/ext 中(这样它将被选为默认配置文件选择器) 。 (如果您使用的是 Maven 3.0.2 或更早版本,您还必须在加载 ${MAVEN_HOME}/bin/m2.conf 之前编辑 lib/ext 来加载 lib) 这个问题很古老,但看起来这个问题可以通过使用 activeProfile 而不是 activeByDefault 来解决。我使用的是 Maven 3.3.9,但该解决方案可能适用于早期版本。 只需在您的 activeProfiles 中列出您的 settings.xml,如下所示: <settings> <profiles> [...] </profiles> <activeProfiles> <activeProfile>my-awesome-profile</activeProfile> </activeProfiles> </settings> 在 my-awesome-profile 中,我有数据库 URL 等设置,因此它们始终 适用。在这里,我激活第二个配置文件,resolve-from-central: $ mvn help:all-profiles -P resolve-from-central [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Maven Stub Project (No POM) 1 [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-help-plugin:2.2:all-profiles (default-cli) @ standalone-pom --- [INFO] Listing Profiles for Project: org.apache.maven:standalone-pom:pom:1 Profile Id: resolve-from-central (Active: true , Source: settings.xml) Profile Id: my-awesome-profile (Active: true , Source: settings.xml) Profile Id: resolve-from-internal (Active: false , Source: settings.xml) 注意 my-awesome-profile 仍然处于活动状态。耶! 配置文件是将一些秩序带入 POM 的好方法。 特别是如果您出于不同目的多次执行同一插件。 使用文件: <profile> <id>alwaysActive</id> <activation> <file><exists>.</exists></file> </activation> ... </profile> 这始终是正确的(除非有人在 Maven 启动期间删除了该目录:)。使用 Maven 3.6.0 进行测试。 这也可能是区分项目类型的好方法。例如,我的项目始终存在module.json。 使用配置文件激活扩展 有一些用于配置文件激活的 Maven 扩展。其中一个在叉子里: https://github.com/OndraZizka/el-profile-activator-extension 您可以简单地在命令行上列出您想要激活的所有配置文件,如下所示: -P 轮廓-1,轮廓-2 maven 被设计为允许自动激活多个配置文件,但是如果您使用 -P 覆盖它,则只会激活参数中列出的配置文件。 您无法保持默认配置文件处于活动状态,但您可以获取该配置文件的内容(示例中的 ...)并将其移动到 pom 的主要部分。 仅仅因为您正在使用配置文件,并不意味着您所做的一切都需要在配置文件中。 这是我针对 activeByDefault 的解决方法,它因设计而被破坏,请参阅 MNG-4917。感谢 Sean Patrick Floyd 在他的回答中提供了该问题的链接。 <activation> <jdk>[1.)</jdk> </activation>

回答 7 投票 0

maven-invoker 不会调用依赖项安装

我的 Maven 构建过程中遇到问题。有一个 pom 文件,它使用 maven-invoker-plugin 来执行不同的任务: 创建WebstartApps 我的 Maven 构建过程中遇到问题。有一个 pom 文件使用 maven-invoker-plugin 来执行不同的任务: <execution> <id>createWebstartApps</id> <phase>process-resources</phase> <goals> <goal>run</goal> </goals> <configuration> <projectsDirectory>.</projectsDirectory> <streamLogs>true</streamLogs> <pomIncludes> <pomInclude>pom1.xml</pomInclude> </pomIncludes> .... 但是当我使用 Maven 发布插件“mvn release:prepare”时,安装目标将不会在子 pom 依赖项上执行。例如,pom1.xml 具有以下依赖项: <dependency> <groupId>com.qnamic.dis</groupId> <artifactId>DisAdminToolWithPlugins</artifactId> <version>${project.parent.version}</version> <type>pom</type> <scope>runtime</scope> ..... 但是这个依赖项(在本例中是 pom 文件)不会安装在我的本地 Maven 存储库中,因此找不到: [INFO] [INFO] Building: pomWebstartDisAdminTool.xml [INFO] [INFO] [INFO] Scanning for projects... [INFO] [INFO] [INFO] [INFO] [INFO] [INFO] ------------------------------------------------------------------------ [INFO] [INFO] [INFO] Building RailOpt DIS Admin Tool 4.9.12 [INFO] [INFO] [INFO] ------------------------------------------------------------------------ [INFO] [INFO] [WARNING] The POM for com.qnamic.dis:DisAdminToolWithPlugins:pom:4.9.12 is missing, no dependency information available [INFO] [INFO] [INFO] ------------------------------------------------------------------------ [INFO] [INFO] [INFO] BUILD FAILURE [INFO] [INFO] [INFO] ------------------------------------------------------------------------ [INFO] [INFO] [INFO] Total time: 0.203s [INFO] [INFO] [INFO] Finished at: Tue Feb 05 13:00:04 CET 2013 [INFO] [INFO] [INFO] Final Memory: 4M/15M [INFO] [INFO] [INFO] ------------------------------------------------------------------------ [INFO] [INFO] [ERROR] Failed to execute goal on project DisAdminToolWebstart: Could not resolve dependencies for project com.qnamic.dis:DisAdminToolWebstart:pom:4.9.12: Failure to find com.qnamic.dis:DisAdminToolWithPlugins:pom:4.9.12 in http://maven.ad.bls.ch/content/groups/public/ was cached in the local repository, resolution will not be reattempted until the update interval of bls-public has elapsed or updates are forced -> [Help 1] 有什么想法吗? 问候 尝试在运行前添加安装。例如。 <execution> <id>createWebstartApps</id> <phase>process-resources</phase> <goals> <goal>install</goal> <goal>run</goal> </goals> ... 有关更多信息: http://maven.apache.org/plugins/maven-invoker-plugin/install-mojo.html & http://maven.apache.org/plugins/maven-invoker-plugin/用法.html HTH, 杰米 在 pom.xml 旁边添加文件 invoker.properties 并将您的目标放入其中,例如: invoker.goals = clean install 如果无法解析的依赖项是内部依赖项,即项目中的另一个模块,那么您可以通过将 <extraArtifacts> 配置添加到 pom.xml 中的调用程序插件配置来解决此问题。 例如,这是我的一个开源项目之一: <extraArtifacts> <extraArtifact>com.github.rvesse:airline:${airline.version}:jar:tests</extraArtifact> <extraArtifact>com.github.rvesse:airline-examples:${airline.version}:jar</extraArtifact> </extraArtifacts> 其中 airline.version 恰好是我根据 project.version 设置的属性 这告诉调用者插件install将这些依赖项放入本地集成测试存储库,确保它们可用于您的集成测试。

回答 3 投票 0

尝试利用 Maven 参数“aether.connector.http.headers”

我使用的是 Maven 版本 3.9.5。我正在尝试使用 'aether.connector.http.headers' 配置选项执行 Maven 命令,以在以下期间发出的所有 HTTP 请求中包含自定义标头...

回答 1 投票 0

pom.properties(系统找不到指定的路径)

我在 Eclipse 中执行项目时遇到以下问题: 发布失败并出现多个错误 找不到文件:D:\Programs\j2ee\OnlineLibrary arget\m2e-wtp\web-resources\META-INF\maven\

回答 0 投票 0

Intellij 调试器不会在断点处停止

我一定是在这里做错了什么。我是 intellij 的新手。从 eclipse 进行切换。我有一个在 weblogic 上运行的 JAX WS 应用程序。要部署的工件是一个ear文件。我一直在挣扎...

回答 4 投票 0

maven 使用父 dependencyManagement 和 ${project.version} 导致依赖版本错误

我有以下结构和以下依赖项:child1->child2。 以及两者的父级,它使用 ${project.version} 合并依赖管理中的所有版本。 文件夹结构...

回答 2 投票 0

maven-dependency-plugin 3.6.+ 开始在依赖期间查找新的“使用未声明的依赖项”:分析目标

我正在尝试将项目从java 11迁移到21,为此我需要将依赖插件从3.1.2更新到3.6.+(较低的不支持21) 我正在尝试将项目从java 11迁移到21,为此我需要将依赖插件从3.1.2更新到3.6.+(较低的不支持21) <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.1.2</version> -> to 3.6.1 <configuration> <failOnWarning>true</failOnWarning> <excludeTransitive>true</excludeTransitive> </configuration> </plugin> 但我发现 3.6.+ 的工作方式似乎有点不同(即使使用 java 11)它开始找到多个新的“使用未声明的依赖项” 16:42:43:965 [main] [ERROR] Used undeclared dependencies found: 16:42:43:965 [main] [ERROR] org.springframework:enter code herespring-web:jar:5.3.30:compile 据我所知,它分析编译的字节码以查找“使用的未声明的依赖项”,但这是错误的:它找到的那些库中的编译类中没有任何导入。 我不明白为什么会这样?是插件bug吗?或者我做错了什么?有人经历过这样的事吗 谢谢你。 您可以通过使用不同版本的 maven-dependency-analyzer 来规避该问题,如下所示: <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.6.1</version> <configuration> <failOnWarning>true</failOnWarning> </configuration> <dependencies> <dependency> <groupId>org.apache.maven.shared</groupId> <artifactId>maven-dependency-analyzer</artifactId> <version>1.13.0</version> </dependency> </dependencies> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>analyze-dependencies</id> <goals> <goal>analyze-only</goal> </goals> </execution> </executions> </plugin> </plugins> </build>

回答 1 投票 0

Maven 在现有目录中生成 achetype

我正在尝试使用现有目录创建空的 Maven Web 项目(实际上来自 github 项目,它是空的,仅包含 README 文件)。 但是maven似乎检测到目录存在并且失败了......

回答 4 投票 0

如何确保 Maven 插件是线程安全的

我的团队开发的 Maven 插件很少, 并且这些插件没有标记@threadSafe。 我已经做过大约 50 份工作,我没有看到不一致的情况,但我想知道是否存在......

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.