问题标签 [mvn-repo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
40 浏览

java - mvn 命令用于更新依赖项中的版本和一个使用该依赖项的项目

我正在尝试找出更新其他几个 Java 项目使用的 POM 文件中的版本的最佳实践。我是 Java 和 Maven 的新手,但不是 OOP 和 semver。

我使用 maven 构建系统接管了一些带有 Java 代码的 git 存储库。我需要向其他几个存储库使用的“核心”存储库添加新功能,即使我只需要其中一个存储库即可从新功能中受益。我的希望是保持其他存储库不变。如果其他存储库被某些 devops 进程重新部署,我希望他们使用“核心”版本,而不需要对“核心”添加任何更改。

我认为我应该先更新“核心”存储库的 POM 文件中的版本,然后再将其工件存储在 Nexus 中,这样其他存储库就不会下载包含我的更改的“核心”版本。我应该使用什么mvn命令?

现在,“核心”库声明其版本如下:

使用“核心”的项目具有如下所示的 POM:

我不确定什么时候<parent>是一个有用的标签,但我注意到它没有被用来将应用程序存储库连接到“核心”存储库。

我想我想更新 POM

  1. 为核心
  2. 对于使用核心的一个项目,而不是也使用核心的其他项目。

I interpret the fact that the version -SNAPSHOT is used in references to "core" by all the other projects to tell me that no "release" was created for the "core", at least at the current version. Can I skip ever making a release for 1.0.4 if I want to the version of "core" container my features to be 1.0.5-SNAPSHOT?

What are the commands I need to execute in both the "core" repo and the repo for the one project I want to use the new build? I think some commands simply modify the POM, but other commands will publish the build to Nexus.

Or can I just type a new number in the POM and run a mvn command to push the build to Nexus with the new version? If I simply change the value with a text editor, I plan to leave the word -SNAPSHOT in the incremented version of "core" as well as the reference to "core" in the one app I want to use the new features. Then I will just need to publish core to Nexus.

--- UPDATE ---

I learned that this command will bump the version number in "core". It seems unnecessarily complex since you still need to type in the full version value when prompted by the CLI (I typed "1.0.5-SNAPSHOT").

And I guess this is how you update the app to use the latest version of the dependency, but I think it only works if you succeeded to publish the dependency with mvn deploy.

0 投票
1 回答
2508 浏览

maven - mvn deploy:deploy-file 将多个文件发布到 nexus

我们想使用 mvn 命令将工件发布到 nexus 中的“发布”存储库(不是 SNAPSHOT),但是运行多个命令来将新文件添加到其中一个版本是不可能的(将因 HTTP 400 错误而失败)。那么,任何人都可以分享 pom.xml,我们可以将多个文件一次性发布到 nexus 发布存储库吗?

我一直在尝试执行以下 3 个命令,第一个命令成功,第二个命令失败

0 投票
1 回答
429 浏览

visual-studio-code - OpenJDK11 和 java 1.8 编译器

VisualStudioCode 需要 openJDK11 但我需要使用 1.8 版进行编译。我下载了 openJDK11 并更改了JAVA_HOME变量,但是当我运行java -version命令时它仍然显示安装了 Java 1.8:

然后:

0 投票
1 回答
514 浏览

maven - 如何让 Maven 从 Nexus 下载但绕过它以获取外部 jar

我了解 Nexus 应该下载外部依赖项,但公司 Nexus 服务器(我无法控制)无法访问互联网或下载外部 jar。

作为一种解决方法,我有 2 个 settings.xml 文件,我手动切换。一个 settings.xml 使用公司 Nexus 服务器作为内部 jars,另一个使用公司代理从默认的 Maven 存储库下载外部依赖项。一旦所有依赖项都在我的本地 Maven 存储库中,编译工作。

Nexus 的 settings.xml(不包括代理)

用于 Internet 的 settings.xml(不包括镜像和服务器)

这两个文件都可以独立工作,但我不知道如何将它们组合成一个。

有没有办法配置 maven,如果公司 Nexus 无法解决依赖关系,它将回退并尝试通过公司的互联网代理或其他方式从外部存储库下载,这样我就不必切换两个settings.xml 文件之间?

0 投票
0 回答
21 浏览

java - Maven 构建成功,无需依赖

我的 maven 模块中有一个依赖项 com.somecompany.somelib,这是必需的。

我的源代码中有消耗这种依赖关系的类。

如果我从我classpath的 in 中删除此依赖项intellij,我会看到我的模块构建失败intellij(预期)。

但是,当我mvn clean install在从 pom.xml 中删除依赖项后通过命令行在此模块上执行此操作时,情况并非如此。构建仍然成功,它应该失败!(没有预期)

我已--debug启用该选项进行检查,但没有看到添加的依赖项。我看到正在编译的类文件,甚至是生成的 .jar 文件中的 .class 文件。

--debug日志中没有出现此依赖项名称。

我花了一整天的时间搜索和阅读,但找不到任何解决方案/可能的原因。

如果有帮助,下面是一些附加信息。

maven version - Apache maven 3.6.0

basedir = /home/user/git/repo/projectname/modulename

buildDirectory = /home/user/git/repo/projectname/modulename/target

compileSourceRoots = [/home/user/git/repo/projectname/modulename/src/main/java]

compilerId = javac

debug = true

encoding = UTF-8

failOnError = true

forceJavacCompilerUse = false

fork = false

optimize = false

source = 8

staleMillis = 0

target = 8

useIncrementalCompilation = true

verbose = false

0 投票
1 回答
258 浏览

java - mvn clean install 在新的本地机器上给出错误

这是非常出乎意料的,我最近换了一台新机器,在设置我的开发环境时,我的一个服务在运行时出现了这个错误mvn clean install

我的第一个猜测是我的项目中缺少一个依赖项(不确定是哪个),尽管它确实在包括 Jenkins 实例在内的现有机器上构建成功。

我运行的其他服务都没有这样的问题。

我已经验证提到的罐子没有损坏。尝试删除整个.m2目录并重新开始。

我在这里可能会错过任何其他可能性吗?

编辑:添加我被推荐使用较新插件的<plugins>部分pom.xml ,但这可能有助于进一步缩小问题范围:

我已经<execution>从这些中删除了部分以节省一些滚动。

0 投票
0 回答
39 浏览

java - JreCompat 在 2 个位置可用,哪一个是正确的,请问如何解决这个问题?

类层次结构是从以下位置加载的:

行动:

更正应用程序的类路径,使其包含一个兼容的 org.apache.tomcat.util.compat.JreCompat 版本

0 投票
1 回答
318 浏览

spring - 在为 Atlassian Renderer 库构建 Gradle 期间获得 401 Unauthorized

我认为 Gradle 构建问题与这篇关于 Spring Artifactory 实例 repo.spring.io 权限的 Spring文章有关。请帮助我纠正升级到 Gradle 5.0 后最近开始失败的 build.gradle。

来自 build.gradle 的片段

我得到的错误是

请帮忙。

0 投票
0 回答
155 浏览

java - Maven 构建失败 - 进程退出并出现错误:126

我正在使用命令运行 maven build -

但它失败并出现以下错误 -

我无法得到 126 错误代码的原因。你能帮忙了解一下原因吗?

0 投票
2 回答
178 浏览

maven - 当我们将空手道项目与 docker 映像一起使用时,有没有办法避免一次又一次地重新下载 maven 依赖项?

很明显,通常对于我们的项目,当我们运行 mvn 测试时,首先它会下载依赖项并将其存储到我们的本地 /home/username/.m2 ,然后它将在我们下次运行时使用mvn 测试。但是我们在 Dockerfile 中使用 mvn 镜像,有没有办法做同样的事情(除了使用卷或挂载概念)???...