问题标签 [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.
java - mvn 命令用于更新依赖项中的版本和一个使用该依赖项的项目
我正在尝试找出更新其他几个 Java 项目使用的 POM 文件中的版本的最佳实践。我是 Java 和 Maven 的新手,但不是 OOP 和 semver。
我使用 maven 构建系统接管了一些带有 Java 代码的 git 存储库。我需要向其他几个存储库使用的“核心”存储库添加新功能,即使我只需要其中一个存储库即可从新功能中受益。我的希望是保持其他存储库不变。如果其他存储库被某些 devops 进程重新部署,我希望他们使用“核心”版本,而不需要对“核心”添加任何更改。
我认为我应该先更新“核心”存储库的 POM 文件中的版本,然后再将其工件存储在 Nexus 中,这样其他存储库就不会下载包含我的更改的“核心”版本。我应该使用什么mvn
命令?
现在,“核心”库声明其版本如下:
使用“核心”的项目具有如下所示的 POM:
我不确定什么时候<parent>
是一个有用的标签,但我注意到它没有被用来将应用程序存储库连接到“核心”存储库。
我想我想更新 POM
- 为核心
- 对于使用核心的一个项目,而不是也使用核心的其他项目。
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
.
maven - mvn deploy:deploy-file 将多个文件发布到 nexus
我们想使用 mvn 命令将工件发布到 nexus 中的“发布”存储库(不是 SNAPSHOT),但是运行多个命令来将新文件添加到其中一个版本是不可能的(将因 HTTP 400 错误而失败)。那么,任何人都可以分享 pom.xml,我们可以将多个文件一次性发布到 nexus 发布存储库吗?
我一直在尝试执行以下 3 个命令,第一个命令成功,第二个命令失败
visual-studio-code - OpenJDK11 和 java 1.8 编译器
VisualStudioCode 需要 openJDK11 但我需要使用 1.8 版进行编译。我下载了 openJDK11 并更改了JAVA_HOME
变量,但是当我运行java -version
命令时它仍然显示安装了 Java 1.8:
然后:
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 文件之间?
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
java - mvn clean install 在新的本地机器上给出错误
这是非常出乎意料的,我最近换了一台新机器,在设置我的开发环境时,我的一个服务在运行时出现了这个错误mvn clean install
我的第一个猜测是我的项目中缺少一个依赖项(不确定是哪个),尽管它确实在包括 Jenkins 实例在内的现有机器上构建成功。
我运行的其他服务都没有这样的问题。
我已经验证提到的罐子没有损坏。尝试删除整个.m2
目录并重新开始。
我在这里可能会错过任何其他可能性吗?
编辑:添加我被推荐使用较新插件的<plugins>
部分pom.xml
,但这可能有助于进一步缩小问题范围:
我已经<execution>
从这些中删除了部分以节省一些滚动。
java - JreCompat 在 2 个位置可用,哪一个是正确的,请问如何解决这个问题?
类层次结构是从以下位置加载的:
行动:
更正应用程序的类路径,使其包含一个兼容的 org.apache.tomcat.util.compat.JreCompat 版本
spring - 在为 Atlassian Renderer 库构建 Gradle 期间获得 401 Unauthorized
我认为 Gradle 构建问题与这篇关于 Spring Artifactory 实例 repo.spring.io 权限的 Spring文章有关。请帮助我纠正升级到 Gradle 5.0 后最近开始失败的 build.gradle。
来自 build.gradle 的片段
我得到的错误是
请帮忙。
java - Maven 构建失败 - 进程退出并出现错误:126
我正在使用命令运行 maven build -
但它失败并出现以下错误 -
我无法得到 126 错误代码的原因。你能帮忙了解一下原因吗?
maven - 当我们将空手道项目与 docker 映像一起使用时,有没有办法避免一次又一次地重新下载 maven 依赖项?
很明显,通常对于我们的项目,当我们运行 mvn 测试时,首先它会下载依赖项并将其存储到我们的本地 /home/username/.m2 ,然后它将在我们下次运行时使用mvn 测试。但是我们在 Dockerfile 中使用 mvn 镜像,有没有办法做同样的事情(除了使用卷或挂载概念)???...